Я ищу способ настроить nhibernate так, чтобы дочерние сущности-сироты автоматически удалялись, но если родительский объект удален, а дочерний существует, выполняется запрос на удаление родительского объекта, но не для дочерних. По сути, я бы хотел установить опцию каскадирования «save-update-orphan», но это не поддерживается.
<set name="children" inverse="true" cascade="all-delete-orphan" access="field">
<key column="ParentId" />
<one-to-many class="Parent" />
</set>
Утилита all-delete-orphan не работает для меня, потому что она удаляет потомков автоматически при удалении родителя.
Обновление
Чтобы попытаться быть более понятным ... Когда я явно удаляю дочерний элемент из коллекции родительского объекта, я хочу удалить дочерний элемент. Когда я явно удаляю родителя, я не хочу, чтобы потомки удалялись.