【发布时间】:2016-08-24 22:35:35
【问题描述】:
在 Entity Framework Core 1.0 中,当我执行以下操作时:
var products = _context.Products.ToList();
foreach (var prod in products)
{
prod.Status = 1;
}
_context.SaveChanges();
我相信它会自动更新列表中的所有产品,使其状态为 1。
如果是这种情况,AddRange、UpdateRange、Add、Update、Remove 等发生了什么?我还需要再使用这些吗?我觉得我不需要更新功能,因为一旦我从数据库中提取实体就会被跟踪。
有人可以帮我解决这个问题吗?我的代码到处都是。在大多数情况下,我使用的是 UpdateRange 和 Update 函数,但最近才注意到我可能只需要调用 _context.SaveChanges()。
现在,如果我这样做:
var products = _context.Products.AsNoTracking().ToList();
foreach (var prod in products)
{
prod.Status = 1;
}
// I believe I would have to UpdateRange here...
_context.UpdateRange(products);
_context.SaveChanges();
【问题讨论】:
标签: c# entity-framework entity-framework-core