Möglicherweise eine dumme Frage, aber ich habe eine Anzahl von Entitäten, die alle von einer Basiseinheit erben. Die Basiseinheit hat keine Tabelle in der Datenbank. Jede Entität hat ihre eigene Tabelle und die Tabellendefinition ist genau gleich. Extrem vereinfachtes Beispiel des Codes ist unten.Fluent NHibernate/NHibernate Vererbung Frage
public abstract class BaseEntity
{
public virtual string someProperty {get; set;}
}
public class Entity1 : BaseEntity{}
public class Entity2 : BaseEntity{}
public class CompletelyDifferentEntity
{
public virtual IList<BaseEntity> {get; set;}
}
Ich erstellte die Zuordnungen für die Entitäten. In meinen anderen Domänenklassen, wenn ich auf die konkreten Klassen referenziere, funktioniert alles gut, aber wenn ich meine anderen Klassen so ändere, dass ich stattdessen BaseEntity referenziere, bekomme ich eine Mapping-Ausnahme, weil die BaseEntity nicht zugeordnet ist. Ist das etwas, wo ich einen Unterklassen-Diskriminator verwenden sollte? Ich denke, ich sehe nicht den richtigen Weg, dies zu tun, wenn die Basis keine zugeordnete Tabelle hat und die Unterklassen keine spezifische Spalte haben, die sich zwischen den Tabellendefinitionen unterscheidet.
Ich werde in die Tabelle-pro-konkrete Zuordnung ein wenig mehr suchen. Leider wird das Ändern des Datenbankschemas nicht funktionieren, da es mehrere bereits existierende Systeme gibt, die vom aktuellen Schema abhängen. –