在我的应用程序中,我有一个方法,我从代码调用数据库,这可以正常工作。
我刚刚创建了一个新的大方法,它还为数据库添加了更多的数据。
当我调用它时,它在第一次运行时似乎工作正常,但是,如果我在上一次尝试的几分钟内再次运行它,我会收到以下错误:
数据库的更改已成功提交,但出现错误 更新对象上下文时发生。 ObjectContext可能是 处于不一致的状态。内部异常消息:AcceptChanges 无法继续,因为对象的键值与另一个键冲突 ObjectStateManager中的对象。确保键值是 在调用AcceptChanges之前是唯一的。
我不确定如何解决这个问题,任何人都可以提出建议吗? (除了不要在最后一次尝试的几分钟内运行它!)。
答案 0 :(得分:2)
当您尝试保存未正确定义主键(复合键)的实体模型时,通常会发生此错误。
在EntityTypeConfiguration文件中定义键,如
this.HasKey(f => new { f.ID1, f.ID2 });
答案 1 :(得分:0)