У меня есть объект NewsFeed, сопоставленный так:
<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>
И пользователи, которые могут иметь набор выбранных каналов, в которые они могут быть заинтересованы, отображаются следующим образом:
<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.
Каков наилучший способ достичь этого?
ОБНОВЛЕНИЕ : Использование cascade = "all-delete-orphan" вместо "all" все еще приводит к исключению при удалении NewsFeed:
Оператор DELETE конфликтует с ограничением REFERENCE "FKC8B9DF81601F04F4". Конфликт произошел в базе данных «Система», таблица «dbo.SystemUserSelectedNewsFeeds», столбец «NewsFeedId».