当前位置: 首页 > 面试题库 >

传递到字典中的模型项的类型为'System.Data.Entity.DynamicProxies.Object

郭逸清
2023-03-14
问题内容
The model item passed into the dictionary is of type
system.Data.Entity.DynamicProxies.Object_3E186F803589BF82895B10E08C
2A9AB68EFA619599418D6EB96585D14874CDC0', 
but this dictionary requires a model item of type 
'System.Collections.Generic.IEnumerable`1[MyApplication.Domain.Entities.Object]'.

这是我的代码:

控制器:

        public ViewResult Index()
    {
        if (User.Identity.IsAuthenticated)
        {
            MembershipUser currentUser = Membership.GetUser();
            Guid currentUserId = (Guid)currentUser.ProviderUserKey;
            if (currentUser != null && currentUser.ProviderUserKey != null && currentUser.IsApproved)
            {
                Move result = (from move in db.Moves
                         where move.UserId == currentUserId
                         select move).FirstOrDefault();
                return View(result);
            }
        }
        return View(db.Moves.ToList());
    }

看法:

@model IEnumerable<MovinMyStuff.Domain.Entities.Move>
@{
ViewBag.Title = "Index";
}

@foreach (var item in Model)
{
<div id="move-list-item">
    <ul>
        <li>
            <span class="move-name">
                @Html.DisplayFor(modelItem => item.StartCity) 
                @Html.DisplayFor(modelItem => item.StartState)
                @Html.DisplayFor(modelItem => item.StartZip) -
                @Html.DisplayFor(modelItem => item.EndCity) 
                @Html.DisplayFor(modelItem => item.EndState)
                @Html.DisplayFor(modelItem => item.EndZip)
            </span>
        </li>
        <li>@Html.ActionLink("Details", "Details", new { id = item.MoveId }, new { @class = "button" })</li>
    </ul>
</div>
}

问题答案:

这段代码:

Move result = (from move in db.Moves
         where move.UserId == currentUserId
         select move).FirstOrDefault();
return View(result);

尝试返回 单个 结果。它抱怨它想要 一系列 结果。因此,您可以使用:

var results = (from move in db.Moves
               where move.UserId == currentUserId
               select move).Take(1).ToList();
return View(results);

或者:

Move result = (from move in db.Moves
         where move.UserId == currentUserId
         select move).FirstOrDefault();
return View(new[] { result });

顺便说一下,我个人将在这里摆脱查询表达式-它使代码变得比所需的更为复杂。例如,您可以将我的第一个选项重写为:

var results = db.Moves.Where(move => move.UserId == currentUserId)
                      .Take(1)
                      .ToList();
return View(results);

甚至:

return View(db.Moves.Where(move => move.UserId == currentUserId)
              .Take(1).ToList());


 类似资料:
  • 问题总结:我想传递一个带有类型参数(如

  • 本文向大家介绍String类型传递是值传递,char[]类型传递是引用传递的实现,包括了String类型传递是值传递,char[]类型传递是引用传递的实现的使用技巧和注意事项,需要的朋友参考一下 如下所示: 结果是:str任然是hello,ch的第一个元素a变为c 以上就是小编为大家带来的String类型传递是值传递,char[]类型传递是引用传递的实现的全部内容了,希望对大家有所帮助,多多支持呐

  • 问题内容: 问题摘要: 我想将具有类型参数(例如)的类作为类型参数传递给泛型方法。 假设我有一个方法: 当然,此方法对于任何类型的类都可以正常使用。我可以这样调用该方法,例如: 问题: 我发现我不能这样做: 从句法上讲,这显然是无效的。但是,我不确定如何实现这样的目标。我当然可以通过,但是泛型类型的添加使其在语法上不再有效,并且我想不出解决方法。 唯一的直接解决方案是这样的事情(看起来很愚蠢):

  • 问题内容: 是否有可能做类似这样的一个东西,还是其他什么东西? 如果我可以扩展它,那就更好了: 问题答案: 如果和是模型中的字段,则可以使用**运算符将关键字参数传递到字典中。 假设你的模型称为MyModel: 至于第二个问题,字典必须是最后一个参数。同样,并且应该是模型中的字段。

  • 问题内容: 我正在尝试创建一个字典变量,其值是两种类型之一。我的尝试的一个例子应该使这一点更清楚: 这引发了仅语法功能类型可以通用的编译器错误。我想知道是否有可能,我只是不知道正确的语法? 问题答案: 为此所需的工具是带有关联数据的枚举。 这样可以捕获“一个浮标或布尔对象”,并提供更好的文档记录和类型安全性。 要卸载数据,请使用switch语句: 使用switch语句可确保覆盖所有可能的类型,并防

  • 在练习Java的过程中,我随机想到了以下几点: 我认为它会抛出一个错误,因为在数学中,我们不能将数字值添加到字母A中,但下面的程序运行正确并打印 这怎么可能?