我要插入的对象有一个父对象作为导航属性。
当我“添加”要插入的对象时,它还将我的父对象(已插入)的ObjectStateManager
设置为Added
并尝试插入它。我在SQL事件探查器中验证了它,因此引发了唯一密钥违规的例外。
我从两个方面摆脱了这个
ObjectStateManager
设置为Modified
。但这似乎更像是黑客而不是解决方案。我相信实体框架必须有一些优雅的解决方案。
请建议。
答案 0 :(得分:0)
第二种方法是解决这个问题的正确方法。当您致电AddObject
时,EF会在Added
状态下附加对象图中的所有实体。如果图表中还有现有实体,则必须通过将状态设置为Unchanged
或Modified
来告知EF有关它们的信息。