我做了很多研究,但没有找到任何符合我问题的答案。我甚至尝试使用 The relationship could not be changed because one or more of the foreign-key properties is non-nullable 示例。没有成功。
我正在使用Entity Framework 6 Code First(Fluent API),POCO类。
我有一个名为Parent的类和一个名为Child
的类一个家长可以有一个或多个孩子(一对多关系)
所以,在我的ParentMapping类中,我做了:
HasMany(p => p.Childs).WithRequired(p => p.Parent).Map(m => m.MapKey("ParentId"));
在我的ChildMapping课程中我做了:
HasRequired(p => p.Parent).WithMany(p => p.Childs).Map(m => m.MapKey("ParentId"));
我坚持(插入,更新和删除)我的孩子poco类,同时我坚持父类。因此,每次保存父类时,它的 Childs 属性中都有一个或多个子对象。因此,父对象负责持久保存其子对象。
我按照上面的例子(参见链接)将数据保存到数据库中。
当我尝试将新子项添加到数据库中已有一个子项的db存在的Parent时,我得到以下消息,并调用 db.SaveChanges :
违反了多重约束。 Child_Parent关系的Child_Parent_Target角色具有多重性1或0..1。
任何人都可以帮助我吗?我正在努力解决这个问题,并且在隧道尽头看不到任何光线。
答案 0 :(得分:0)
我能够使用GraphDiff神奇的库来解决我的问题。在谈论父母/孩子的坚持时,它只为我们做了一切。
在这篇文章中查看:GraphDiff - Allowing automated updates of a graph of detached entities