【发布时间】:2011-12-30 11:09:21
【问题描述】:
我有一个在 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 属性没有更新?
【问题讨论】: