EF6:AddRange抛出异常

时间:2016-01-24 17:23:37

标签: c# entity-framework-6

我正在尝试使用AddRange方法在我的数据库中创建批量插入。

这就是我的所作所为:

Person

当我调用SaveChanges()时,我得到一个异常说:

    public virtual IEnumerable<E> InsertRange(IEnumerable<E> entities)
    {
        Context.Set<E>().AddRange(entities);

        if (isAutoSave)
            Context.SaveChanges();
    }

我认为问题可能出在我的模型中。我的Id列是PK,Identity是int类型,它导致所有新实体的Id = 0。我该怎么做才能解决这个问题?

谢谢, 马坦

1 个答案:

答案 0 :(得分:0)

也许你可以尝试禁用ef跟踪 - 做你需要的任何事情,保存更改并重新启用它。这也将提高插入操作的性能。

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

DateTime.UtcNow

完成后再启用它:

context.Configuration.AutoDetectChangesEnabled = false;

我希望这会对你有所帮助。