Wir möchten eine einzige Tabelle auf zwei Klassen mit NHibernate zuordnen. Das Mapping muss dynamisch abhängig vom Wert einer Spalte sein.NHibernate Mapping einer Tabelle auf zwei Klassen mit der Auswahl
Hier ist ein einfaches Beispiel, um es ein wenig klarer zu machen: Wir haben eine Tabelle namens Person mit den Spalten ID, Name und Geschlecht.
Die Daten aus dieser Tabelle sollten entweder auf die Klasse Male oder für die Klasse Female in Abhängigkeit vom Wert des Spalts Sex gemappt werden.
In Pseudocode:
create instance of Male with data from table Person where Person.Sex = 'm';
create instance of Female with data from table Person where Person.Sex = 'f';
Der Vorteil ist, wir haben Domain-Modelle stark typisiert und können später Switch-Anweisungen vermeiden.
Ist dies mit NHibernate möglich, oder müssen wir zuerst die Personentabelle in eine flache Personenklasse umwandeln? Danach müssten wir eine benutzerdefinierte Factory-Methode verwenden, die eine flache Person-Instanz verwendet und eine weibliche oder männliche Instanz zurückgibt. Wäre gut, wenn NHibernate (oder eine andere Bibliothek) damit umgehen könnte.
Vielen Dank! Funktioniert wie erwartet. Wäre seltsam gewesen, wenn es nicht unterstützt wurde. Dies ist eines der Dinge, für die OR/M gemacht ist. –