Ich habe folgendes Objektmodell:NHibernate Mapping Probleme
- Ein Top-Level-abstrakte Klasse
Element
mit vielen Kindern und Nachkommen. - Eine Klasse
Event
. - Jede
Element
enthält eine Tasche vonEvent
s. - Jedes
Event
hat einen Zeiger auf das übergeordneteElement
.
Bis jetzt - ziemlich standart one-to-many Beziehung.
Aber ich möchte Tabelle pro konkrete Klassenstrategie verwenden. Daher ist die Klasse Element
nicht der Datenbank zugeordnet. Ich habe versucht, es auf diese Weise zu lösen: jeder der konkreten Nachkommen von Element
definiert seine eigene Tasche von Event
s. Das Problem dabei ist, dass jedes <bag>
Element ein <key>
Element enthält. Dieser Schlüssel verweist auf die Parent
Eigenschaft von Event
. Es macht auch die Parent
Spalte in der Event
s Tabelle einen Fremdschlüssel zu der Tabelle, die den Bag enthält! Aber eine Spalte kann kein Fremdschlüssel für mehrere Tabellen sein und ich bekomme eine Ausnahme beim Einfügen.
Ich habe auch versucht, das Parent
Feld in der Event
s Tabelle ein Viel-zu-eine Art Feld zu machen. Das hat funktioniert. Aber wenn ich die Beziehung bidirektional machen will, also die Taschen den Nachkommen von Element
hinzufügen, komme ich auf das gleiche Problem zurück. Bag => Fremdschlüssel => Ausnahme beim Einfügen.
Ich bin sicher, dass dieser Fall nicht so einzigartig ist, wie es scheint. Vielen Dank im Voraus für Ihre Hilfe.