NÜberwintern Viele-zu-eins-Kaskade
Ich habe die folgenden zwei Klassen:
public class Project
{
public virtual int ProjectId { get; set; }
public virtual string ProjectName { get; set; }
public virtual LegalEntity LegalEntity { get; set; }
}
und
public class LegalEntity
{
public virtual int LegalEntId { get; set; }
public virtual string Name { get; set; }
}
mit Abbildungen als:
<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>
und
<class name="LegalEntity" table="LegalEnt" dynamic-update="true">
<id name="LegalEntId">
<generator class="native"/>
</id>
<property name="Name" />
</class>
In der Datenbank enthält die Projekttabelle die Spalte PK von FK to LegalEntity. Ein Projekt wird nur eine juristische Person haben. Verschiedene Projekte können dieselbe juristische Person haben. Das ist der Grund, warum ich für viele zu eins gegangen bin. Ich bin mir nicht sicher, ob dies korrekt ist.
Einfügen und Aktualisieren funktioniert einwandfrei. Wenn ich jedoch eine ID einer juristischen Person in einem Projekt aktualisiere und diese juristische Person verwaist, möchte ich, dass sie gelöscht wird. Aber es passiert nicht. Liege ich falsch, wenn ich Delete-All-Orphan verstehe? Wenn ja, wie kann ich dieses Verhalten erreichen?