Je le modèle d'objet suivant:NHibernate des problèmes de cartographie
- Un haut niveau classe abstraite
Element
avec beaucoup d'enfants et descendants. - Une classe
Event
. - Chaque
Element
contient un sachet deEvent
s. - Chaque
Event
a un pointeur vers le parentElement
.
Jusqu'à maintenant - jolie relation one-to-many standart. Mais, je veux utiliser la table par stratégie de classe concrète. Ainsi, la classe Element
n'est pas mappée à la base de données. J'ai essayé de le résoudre de cette façon: chacun des descendants concrets de Element
définit son propre sac de Event
s. Le problème avec ceci est que chaque élément <bag>
contient un élément <key>
. Cette clé pointe vers la propriété Parent
de Event
. Il fait également la colonne Parent
dans la table Event
une clé étrangère à la table qui contient le sac! Mais une colonne ne peut pas être une clé étrangère à plusieurs tables et je reçois une exception sur l'insertion.
J'ai également essayé de transformer le champ Parent
dans la table Event
en un type de champ unique. Ça a marché. Mais quand je veux faire la relation bidirectionnelle, c'est-à-dire, ajouter les sacs aux descendants de Element
je reviens au même problème. Bag => clé étrangère => exception à l'insertion. Je suis sûr que ce cas n'est pas aussi unique que cela puisse paraître. Merci d'avance pour votre aide.