Предположим, у меня есть эти отношения:
abstract class Base { int Id; int JoinedId; ... }
class Joined { int Id; int Discriminator; ... }
class Sub1 : Base { ... }
class Sub2 : Base { ... }
для следующих таблиц:
table Base ( Id int, JoinedId int, ... )
table Joined ( Id int, Discriminator int, ... )
Я хотел бы настроить отображение наследования таблицы на иерархию для отношений Base, Sub1, Sub2, но используя свойство Disciminator из класса Joined в качестве дискриминатора.
Вот общая идея для файла сопоставления:
<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>
Есть ли способ сделать что-то подобное с помощью <discriminator>
, <join>
или <many-to-one>
? Кажется, NHiberante полагает, что дискриминатор - это столбец в данной таблице (для меня это имеет смысл. Я знаю, что это неортодоксально).
Спасибо.