Ich habe ein Modell, bei dem mehrere Klassen eine Liste von Werttypen haben:NHibernate: Karte derselben Klasse auf mehrere Tabellen in Abhängigkeit von Eltern
class Foo { public List<ValType> Vals; }
class Bar { public List<ValType> Vals; }
Foo und Bar sind unabhängig davon abgesehen, dass sie diese beiden vals enthalten. Die Regeln zum Hinzufügen, Entfernen usw. der ValTypes sind für jede Klasse unterschiedlich. Ich möchte dieses Design in meinem Code behalten.
Es gibt Zeiten, wenn ich zum Beispiel einige Vals von einem Foo in einen Bar kopieren möchte. In der Datenbank hat jeder ValType seine eigene Tabelle, um sie klein zu halten, leicht (sie hat nur die Eltern-ID + 2 Felder) und erlaubt Integritätsprüfungen. Ich weiß, dass NHibernate sagt, ich sollte meine Objekte so granular wie die Datenbank behalten, aber das macht meinen Code nur hässlicher.
Das Beste, was ich bis jetzt gedacht habe, ist separate Unterklassen von ValType, eine für jedes Elternteil. Dann kann ich diese auf dieser Ebene abbilden. Dann schließe ich Logik hinzufügen und entfernen, um zwischen den richtigen Unterklassen automatisch zu konvertieren und sie tatsächlich in einer privaten Liste zu speichern, die den richtigen Unterklasse-Typ hat. Aber das schien etwas verworren.
Wie kann ich dies in NHibernate (Fluent NHibernate wenn möglich) zuordnen?
Bitte lassen Sie mich wissen, wenn dies ein Duplikat ist - ich bin mir nicht ganz sicher, wie man das sucht.
Hmm das wäre peinlich: P. Ich werde das überprüfen! – MichaelGG
Ich sehe, dass der Link nicht mehr existiert, möchte die Lösung sehen – adriaanp
Sie können es über die Wayback Machine finden (http://replay.waybackmachine.org/20090301015011/http://code.google.com/p/ fluent-nhibernate/wiki/Beispiele), aber ich finde den relevanten Code nicht. – Peter