Supposons que j'ai cette relation:discriminante basée sur la propriété rejoint
abstract class Base { int Id; int JoinedId; ... }
class Joined { int Id; int Discriminator; ... }
class Sub1 : Base { ... }
class Sub2 : Base { ... }
pour les tableaux suivants:
table Base (Id int, JoinedId int, ...)
table Joined (Id int, Discriminator int, ...)
Je voudrais mettre en place une cartographie de l'héritage table par hiérarchie de la base , Sub1, Sub2, mais en utilisant la propriété Disciminator de la classe Joined comme discriminateur.
est ici l'idée générale du fichier de mapping:
<class name="Base" table="Base">
<id name="Id"><generator class="identity"/></id>
<discriminator /> <!-- ??? or <join> or <many-to-one>? -->
<subclass name="Sub1" discriminator-value="1">...</subclass>
<subclass name="Sub2" discriminator-value="2">...</subclass>
</class>
Est-il possible d'accomplir quelque chose comme ça avec le <discriminator>
, <join>
ou <many-to-one>
? NHiberante semble supposer que le discriminateur est une colonne sur la table donnée (ce qui a du sens pour moi .. Je sais que ce n'est pas orthodoxe).
Merci.
J'ai travaillé pour moi! Voir mes notes ci-dessous. –