C# 使用NHibernate以正确的方式更新实体集合

C# 使用NHibernate以正确的方式更新实体集合,c#,.net,nhibernate,nhibernate-collections,C#,.net,Nhibernate,Nhibernate Collections,关于NHibernate如何工作的一个简单问题: 我有一个父实体,它有一个其他子实体的集合。这些子实体引用了它们所属的父实体。现在我想实现一个向父实体添加方法,该方法将向父实体添加一个子实体。该Add方法是否应仅将子对象添加到其新的父对象集合中,还是还应更新子对象的父对象引用,或者还应将添加的实体从其以前的父对象集合中删除?我必须用这种方法做这些事情,还是NHibernate会为我做些什么 谢谢。您一定要确保该关系对所有相关方都“有效” 确保父项在其子项集合中有子项,子项在其父项引用中有父项,并

关于NHibernate如何工作的一个简单问题:
我有一个父实体,它有一个其他子实体的集合。这些子实体引用了它们所属的父实体。现在我想实现一个向父实体添加方法,该方法将向父实体添加一个子实体。该Add方法是否应仅将子对象添加到其新的父对象集合中,还是还应更新子对象的父对象引用,或者还应将添加的实体从其以前的父对象集合中删除?我必须用这种方法做这些事情,还是NHibernate会为我做些什么


谢谢。

您一定要确保该关系对所有相关方都“有效”


确保父项在其
子项
集合中有子项,子项在其
父项
引用中有父项,并且子项已从其旧的
父项
中删除(如果有)。最后一个步骤是唯一一个我不确定是强制性的步骤。

这就是问题所在。互联网上的大多数例子都有前两件事,但从来没有明确说明是否为了简单起见省略了最后一步,因为事实上NHibernate并不需要和处理最后一步。由于NHibernate在会话期间跟踪对象,理论上它可以跟踪单个更改并自动执行其他两个步骤,但同样,我也找不到任何类似的信息,所以这就是我问的原因。(还有,也是因为我懒得写几个简单的测试…)