繁体   English   中英

错误传递到字典中的模型项的类型是“System.Data.Entity.DynamicProxies

[英]Error The model item passed into the dictionary is of type 'System.Data.Entity.DynamicProxies

传递到字典中的模型项的类型为“System.Data.Entity.DynamicProxies.User_3B687608CE2EBE077B3CAB0EA66E20DFC054F09C758B6620E58A15CACB9B74E5”,但该字典需要类型为“Modelnumions.'UserCollection'Generic.

这是我的代码:

控制器部分

public ViewResultBase ListUserPR(int idUser)
        {
            try
            {
                UserPRParameters parameters = new UserPRParameters();
                parameters.IdUser = idReuniao;
                base.SetViewBag(parameters);
                var model = this.UserPRServices.FindByUserPR(parameters);
                this.ViewBag.IdParameters = parameters.IdParameters;
                return this.ListView(model);
            }
            catch (ValidationException exception)
            {
                base.AddValidationErrors(exception);
                return base.PopUpSuccessView();
            }
        }

服务等级

public IEnumerable<UserPR> FindByUserPR(UserPRParameters parameters)
        {
            try
            {
                var query = base.context.UsersPrs.AsQueryable();
                query = query.Where(x => x.IdUser== parameters.IdUser);

                return query
                    .Sort(parameters, x => x.IdUser)
                    .Paginate(parameters);
            }
            catch (Exception exception)
            {
                throw new Exception(this.context.Database.Connection.ConnectionString, exception);
            }
        }

部分视图 _ListUserPR 内部视图“管理”

@model IEnumerable<UserPR>

@{
    var idGrid = "grid" + this.ViewBag.IdParameters ?? string.Empty;

    var user = this.Model.FirstOrDefault();
    int? userId = 0;
    if (null != user)
    {
        userId= user.IdUser;
    }

    var grid = new IBM.Web.Helpers
        .WebGrid(
                //source: this.Model,
                id: idGrid, rowsPerPage: this.RowsPerPage,
                ajaxUpdateContainerId: idGrid
                );
    var columns = new WebGridColumn[] {
        grid.Column("XXXX", UserPRResources.xxx, style: "center"),
        grid.Column("XXXX", UserPRResources.xxx, style: "center"),
        grid.Column("XXXXX", UserPRResources.xxx, style: "center"),
        ....

视图管理和您的控制器

@model User
@{
    var id = "id" + Guid.NewGuid().ToString().Substring(0, 5);
    this.ViewBag.Title = UserResources.Management;

}
<div class="box-fields">
    @using (Ajax.BeginForm(
        this.DefaultActionCreate,
        "User",
        new DefaultAjaxOptions()
    ))
    {
        @Html.Partial("Validation")
          section">@Resources.ReuniaoResources.ListUser</h2>
            @Html.Partial("ListUserPR")

控制器

public ViewResultBase Management(int id)
        {
            var model = this.Service.Get(id);
            return base.SwitchView(model);
        }

服务

public User Get(int id)
        {
            return this.context.Users.Find(id);
        }

我有两张桌子

User> FK 在 UserPR 中
UserPR 没有 PK - 它是两个关系表(User 和 PR)的结果

我认为您可以通过以下方式禁用代理创建

Configuration.ProxyCreationEnabled = false;

在 dbcontext 构造函数中

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM