nHibernate多对多和级联删除

时间:2014-11-12 03:52:42

标签: c# database hibernate nhibernate many-to-many

我有一个多对多的关联。我的数据库中的表格如下:EventCustomer& Customer_Event

在事件映射文件中,我已将关联映射为级联值"all-delete-orphan"

这在添加新记录时非常有效,并且在删除记录(如果客户未与其他事件关联)时也有效。但是,当客户与多个事件关联时,我收到以下异常:DELETE语句与REFERENCE约束冲突。

这很有道理,但我想知道是否有可能做到以下几点:

删除事件并自动删除客户关联(即Customer_Event表中的记录),如果Customer未与其他事件关联,也将其删除。 (即来自Customer表)

这是我在Event.hbm.xml文件中的映射:

<bag name="CustomerList" table="Customer_Event" inverse="false" 
                                                cascade="all-delete-orphan">
  <key column="EventId"/>
  <many-to-many class="Customer" column="CustomerId" />
</bag>

1 个答案:

答案 0 :(得分:0)

在删除操作之前检查此条件,或者在删除方法中再添加一个catch。

如果您有业务规则,请将其放入您的应用程序中。数据库主要用于数据存储。