我想使用AddRange方法创建一个批量插入到我的数据库。EF6: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和Identity,它的类型为int,这会导致所有新实体的Id = 0。我能做些什么来解决这个问题?
感谢, 马坦
你是怎么产生你显示的错误信息的? –
我更新了我的文章 –
如果它们是数据库中不存在的新对象,则每个对象的Id都应为零。这会通知Entity Framework这些对象是新的,并且在插入数据库时需要分配一个非零ID。我怀疑你的模型可能存在一个不同的问题。你能否提供你试图插入的对象类的代码? – Chase