У меня есть родительский объект, который имеет отношение "один ко многим" с ISet
дочерних объектов. У дочерних объектов есть уникальное ограничение (PageNum
и ContentID
- внешний ключ для родителя).
<set name="Pages" inverse="true" cascade="all-delete-orphan" access="field.camelcase-underscore">
<key column="ContentId" />
<one-to-many class="DeveloperFusion.Domain.Entities.ContentPage, DeveloperFusion.Domain, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
</set>
Проблема, с которой я столкнулся, заключается в том, что я удаляю элемент ContentPage
из родительской коллекции, а затем добавляю новый с тем же уникальным ключом в рамках одной и той же транзакции... Вы получаете уникальное нарушение ограничений, потому что NHibernate пытается выполнить вставку перед удалением.
Есть ли способ заставить NHibernate выполнить сначала удаление?