SaveChanges()后,StoreGeneratedPattern设置为Identity的属性未更新

时间:2011-11-16 13:52:46

标签: c# entity-framework-4.1

我有一个在Db中写入日志信息的方法。 在循环中调用此方法。在第二个插入中,我得到InvalidOperationException:

已成功提交对数据库的更改,但更新对象上下文时发生错误。 ObjectContext可能处于不一致状态。内部异常消息:AcceptChanges无法继续,因为对象的键值与ObjectStateManager中的另一个对象冲突。在调用AcceptChanges之前,请确保键值是唯一的。

我检查了SSDL和CSDL:它们都没问题。 StoreGeneratedPattern设置为Identity。 DB也没关系 - 对应的id属性是identity。

我发现的是

之后
contex.LogHystory.AddObject(logEntry);
context.SaveChanges();

logEntry.Id仍然等于0.因此,在下次调用后,我们得到两个具有相同Id的条目。 为什么在SaveChanges之后没有更新Identity属性?