NHibernate将如何更新父表和子表

时间:2012-08-24 00:28:06

标签: nhibernate fluent-nhibernate fluent-nhibernate-mapping

我正在使用NHibernate开发MVC应用程序。我有一个包含客户信息和订单对象的屏幕。如猜测的那样,客户实体具有List属性,而Order实体具有客户属性。

我通过将订单对象存储在会话中来附加订单对象。用户可以添加/删除订单,因此我已将修改后的订单附加到客户对象。但是当我看到sql语句时,它是插入了预期行为的新订单,但对于已删除的订单,它是用customer_id = null更新而不是完全删除它们?

谢谢, 森迪普•

1 个答案:

答案 0 :(得分:1)

您正在寻找cascade options 您的订单被删除的原因是您持有一个空集合,因此nHibernate假定该集合是故意清空的,并通过删除关联来更新Db中的集合项。

您最想要的行为是AllDeleteOrphan,它会删除从您的客户中删除的订单。

相关问题