我有一些EntityCollection对象。 如果我只是添加新实体,一切都很好。在这里执行的代码:
Context.ApplyChanges()
Context.SaveChanges()
但如果我尝试更新实体,我会收到以下消息:
AcceptChanges无法继续,因为 对象的键值与之冲突 另一个对象 ObjectStateManager。确保 密钥值在调用之前是唯一的 的AcceptChanges。
即使使用相同的集合对象。我的意思是集合中不可能存在相同的实体对象,因为如果它们是新的,则保存到数据库中。但!如果我尝试将相同的代码应用于单独的实体到集合中,则会保存它们,但如果我尝试将其应用于对象(容器),则会出现此错误。
感谢您的帮助
答案 0 :(得分:0)
您是否尝试从Context
检索要更改的实体,正确修改该实体,然后保存更改?如果是这样,你能提供一个更详细的例子吗?
答案 1 :(得分:0)
我怀疑您已从模型或表架构中省略了某些内容。如果预期模型主键是自动生成的,那么我会期望,但是您的表/模型代码没有这样定义。然后,您将集合中对象的所有主键设置为零,并在尝试插入第二个对象时获得主键冲突。