添加/更新很多行在1调用实体框架
本文关键字:调用 实体 框架 更新 添加 | 更新日期: 2023-09-27 18:18:09
我写了一些代码,应该检查一行是否已经存在,如果不存在则添加它,如果存在则添加它。然后调用SaveChanges()函数。我只是想知道我这样做是否正确。
这是我的代码。
using (var ctx = _context)
{
foreach (var item in objects)
{
Object existingRow = ctx.Objects.Where(x => x.Id == item.Id).FirstOrDefault();
if (existingRow != null)
existingRow = item;
else
ctx.Objects.Add(item);
}
ctx.SaveChanges();
}
_context
my context to database.
这样做正确吗?执行SaveChanges()
真的只导致1调用,即使我添加了很多对象到上下文中?
Objects是一个可以包含1000多个对象的列表。
提前感谢您的帮助!
是的,你应该这样做。EF的具体方式取决于内部算法,但它们通常都是格式化好的。
如果你想知道它是如何做到的或者你想改变EF做某事的方式你应该使用拦截