如何设置nhibernate,以便在调用session.Save()时,它将检测其集合的更改。
想要在子集合更改(插入,更新或删除)时更新父记录。
由于
答案 0 :(得分:0)
您可以通过在集合定义上设置cascade属性来设置Nhibernate以保存子集合更改,这样您的集合映射将如下所示:
<bag name="Children" table="tblChildren" inverse ="true" cascade="all-delete orphan" lazy="true">
<key column="ChildId"/>
<one-to-many class="XXXX.Child, XXX"/>
</bag>
答案 1 :(得分:0)
父更改日期需要由业务逻辑处理。如果你明确地设置它,NH将保存它。如果在NHibernate事件或拦截器中设置更改日期,则会丢失,因为NH没有理由更新父级。
您实际上应该有一种处理父更改的服务。如果没有至少让这项服务知道,孩子们不会直接改变。此服务明确设置父级的更改日期。这是业务逻辑的一部分。