EF6:添加范围引发异常
本文关键字:异常 范围 添加 EF6 | 更新日期: 2023-09-27 18:31:50
我正在尝试使用AddRange方法在我的数据库中创建批量插入。
这就是我所做的:
public virtual IEnumerable<E> InsertRange(IEnumerable<E> entities)
{
Context.Set<E>().AddRange(entities);
if (isAutoSave)
Context.SaveChanges();
}
当我调用 SaveChanges() 时,我得到一个异常,说:
Conflicting changes detected. This may happen when trying to insert multiple entities with the same key.
我认为问题可能出在我的模型中。我的 Id 列是 PK,标识类型为 int,这会导致所有新实体的 Id=0。我能做些什么来解决这个问题?
谢谢马坦
也许您可以尝试禁用 ef 跟踪 - 执行任何您需要的操作,保存更改并重新启用它。这也将提高刀片操作的性能。
因此,在调用将插入和保存更改的方法之前,只需添加以下内容:
context.Configuration.AutoDetectChangesEnabled = false;
完成后,请将其重新启用:
context.Configuration.AutoDetectChangesEnabled = true;
我希望这对你有帮助。