EF4.1-尝试更新许多行
-
26-10-2019 - |
题
当用户访问一个特定页面时,我需要更新表的所有行。所有字段都需要更新为“ false”。我尝试了此代码:
var history = db.UserHistory.Where(m => m.UserID == id);
TryUpdateModel(history);
history.IsActive = false;
db.SaveChanges();
但这给我带来了一个错误消息。有人可以帮助我进行此更新吗?
解决方案
起初我无法获得Linq没有一次更新许多行,我必须进行循环并更新每个行。我的最终代码是:
var history = db.UserHistory.Where(m => m.UserID == id).ToList();
TryUpdateModel(history);
history.ForEach(m => m.IsActive = false);
db.SaveChanges();
其他提示
由于您似乎只是在选择一个可能想要将.firstordefault()附加到您的第一行中的单个条目,这应该以Intellisense出现。
var history = db.UserHistory.Where(m => m.UserID == id).FirstOrDefault();
TryUpdateModel(history);
history.IsActive = false;
db.SaveChanges();
现在,您要返回一部可乐,而不是单个条目。 FirstOrdEfault将返回一个单个用户史实体,因此至少您将单个项目传递给TryUpdateModel。
不隶属于 StackOverflow