gpt4 book ai didi

sql - 传递到字典中的模型项的类型为“System.Data.Entity.DynamicProxies.Object”

转载 作者:行者123 更新时间:2023-12-02 05:52:24 28 4
gpt4 key购买 nike

有谁知道我为什么会收到此错误:

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]'.

这是我的代码:

Controller :

        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());

关于sql - 传递到字典中的模型项的类型为“System.Data.Entity.DynamicProxies.Object”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11238905/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com