“...更新对象上下文时发生错误.ObjectContext可能处于不一致状态....”

时间:2012-02-12 23:40:26

标签: c# entity-framework-4.1 ef-code-first

在我的应用程序中,我有一个方法,我从代码调用数据库,这可以正常工作。

我刚刚创建了一个新的大方法,它还为数据库添加了更多的数据。

当我调用它时,它在第一次运行时似乎工作正常,但是,如果我在上一次尝试的几分钟内再次运行它,我会收到以下错误:

  

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

我不确定如何解决这个问题,任何人都可以提出建议吗? (除了不要在最后一次尝试的几分钟内运行它!)。

2 个答案:

答案 0 :(得分:2)

当您尝试保存未正确定义主键(复合键)的实体模型时,通常会发生此错误。

在EntityTypeConfiguration文件中定义键,如

this.HasKey(f => new { f.ID1, f.ID2 });

答案 1 :(得分:0)