NHibernate каскад "многие к одному"

У меня есть следующие два класса:

public class Project
{

    public virtual int ProjectId { get; set; }
    public virtual string ProjectName { get; set; }
    public virtual LegalEntity LegalEntity { get; set; }
}

а также

public class LegalEntity
{
    public virtual int LegalEntId { get; set; }
    public virtual string Name { get; set; }
}

с отображениями как:

<class name="Project" table="Project" dynamic-update="true">
  <id name="ProjectId">
    <generator class="native"/>
  </id>  

  <property name="ProjectName" />
  <many-to-one name="LegalEntity" column="LegalEntId" fetch="join" cascade="all-delete-orphan" />


</class>

а также

<class name="LegalEntity" table="LegalEnt" dynamic-update="true">

  <id name="LegalEntId">

    <generator class="native"/>

  </id>



  <property name="Name" />    

</class>

В базе данных таблица Project содержит столбец PK FK-LegalEntity. Один проект будет иметь только одно юридическое лицо. Разные проекты могут иметь одно и то же юридическое лицо. Так вот почему я пошел на многих к одному. Не уверен, что это правильно, хотя.

Вставка и обновление работает нормально. Но если я обновлю идентификатор юридического лица в проекте, и это юридическое лицо станет сиротой, я хочу, чтобы он был удален. Но этого не происходит. Я ошибаюсь в понимании удаления всех сирот? Если да, как я могу добиться этого поведения?

Ответы на вопрос(2)

Ваш ответ на вопрос