我有映射爲這樣的新聞源對象:當我刪除一個父項時,如何讓NHibernate刪除子項引用?
<class name="NewsFeed">
<id name="NewsFeedId">
<generator class="guid"/>
</id>
<property name="FeedName" not-null="true" />
<property name="FeedURL" not-null="true" />
<property name="FeedIsPublished" not-null="true" />
</class>
和用戶誰可以有選擇的一組反饋,他們可能會在intereseted,映射像這樣:
<class name="SystemUser">
<id name="SystemUserId">
<generator class="guid"/>
</id>
<set name="SelectedNewsFeeds" table="SystemUserSelectedNewsFeeds" cascade="all">
<key column="SystemUserId" />
<many-to-many column="NewsFeedId" class="NewsFeeds.NewsFeed, Domain"/>
</set>
</class>
我想什麼發生的是當我刪除父NewsFeed時,所有SelectedNewsFeed引用也被刪除,而無需加載每個SystemUser並手動刪除NewsFeed。
達到此目的的最佳方法是什麼?
UPDATE:使用級聯=「全刪除,孤兒」,而不是「全部」刪除新聞源時,仍然會導致一個例外:
DELETE語句衝突與基準約束「FKC8B9DF81601F04F4」 。衝突發生在數據庫「System」,表「dbo.SystemUserSelectedNewsFeeds」,列'NewsFeedId'。
嗯..我正在使用NHibernate 2.2,發生這種情況:[MappingException:不支持的級聯樣式:刪除孤兒] – jmcd 2009-01-14 21:49:00