Составные ключи имеют неприятный побочный эффект: с каждым уровнем иерархии таблиц (A-> B-> C) количество столбцов растет.
я есть родительский объект, который имеет отношение один ко многим с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 сначала выполнить удаление?