我有一个“通知”类,其名称为“新”。现在我想要的是:
New == true
选择所有通知。New
更新为false。所以这是我的代码:
var Notices = core.Notices.Where(n => n.New == true).Take(20);
foreach (var n in Notices)
{
n.New = false;
}
core.SaveChanges();
return View(Notices);
但在更新了所有通知后,我的观点一无所获!?!?
更新:这是我的观点:
@model IEnumerable<ESN.Models.UserNotice>
<div>
@foreach (var n in Model)
{
<div style="border-bottom: 2px solid";>
@Html.Raw(n.NContent)
</div>
}
</div>
答案 0 :(得分:1)
这是延迟执行陷阱。您定义了一个linq查询core.Notices.Where(n => n.New).Take(20)
。在您的视图中重新执行相同的查询。但你刚刚修改了所有通知都不是新的。可能的解决方案:
core.Notices.Where(n => n.New).Take(20).ToList()
Notices = core.Notices.Where(n => !n.New).Take(20);