我想知道是否有更智能/更快/ one_line的方式来解决这个问题。实体框架多行更新
我有一个DLL列表IsActive
属性。在UI上,我有复选框,它会根据复选框是否被选中来改变dll的状态。单击按钮时发生更改。我没有问题,遍历整个DB所以我现在做这样的:
foreach (var item in dllList)
{
context.dllSet.Find(item.Id).IsActive = item.IsActive;
}
(dllList
是连接到WPF前List<>
元素)。
因此,现在我在数据库中找到具有相同ID的元素,并将其状态更改为UI复选框中呈现的状态。
解决方案,我想会是这样的:
context.dllSet.AddOrUpdateList(dllList);
可能是有用的http://stackoverflow.com/questions/11421370/efficient-更新列表的实体 – Vladimir
如何:context.dllSet.Where(a => dllList.Contains(a.Id))。ToList()。ForEach(a => a.IsActive = dllList.Find (a.Id).IsActive); –
没有我想象中的那么优雅......但只做了很少修改:) – Norgul