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。我能做些什么来解决这个问题?

谢谢马坦

EF6:添加范围引发异常

也许您可以尝试禁用 ef 跟踪 - 执行任何您需要的操作,保存更改并重新启用它。这也将提高刀片操作的性能。

因此,在调用将插入和保存更改的方法之前,只需添加以下内容:

context.Configuration.AutoDetectChangesEnabled = false;

完成后,请将其重新启用:

context.Configuration.AutoDetectChangesEnabled = true;

我希望这对你有帮助。