Cascata Muitos-para-um do NHibernate

Eu tenho as duas classes abaixo:

public class Project
{

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

e

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

com mapeamentos como:

<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>

e

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

  <id name="LegalEntId">

    <generator class="native"/>

  </id>



  <property name="Name" />    

</class>

No banco de dados, a tabela Projeto possui uma coluna de PK para LegalEntity. Um projeto terá apenas uma entidade legal. Projetos diferentes podem ter a mesma entidade legal. Então essa é a razão pela qual eu escolhi muitos para um. Não tenho certeza se isso está correto.

Inserir e atualizar está funcionando bem. Mas se eu atualizar um ID de entidade legal em um projeto e essa entidade legal se tornar órfã, quero que ele seja excluído. Mas isso não está acontecendo. Estou errado ao entender excluir tudo órfão? Se sim, como posso conseguir esse comportamento?

questionAnswers(2)

yourAnswerToTheQuestion