在實體框架的核心1.0當我做這樣的事情:更新記錄,而無需更新/ UpdateRange
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();