【发布时间】:2010-04-29 19:16:02
【问题描述】:
假设我有这种关系:
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 关系设置一个 table-per-hierarchy 继承映射,但使用 Joined 类中的 Disciminator 属性作为鉴别器。
以下是映射文件的总体思路:
<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 似乎假设鉴别器是给定表上的一列(这对我来说很有意义。我知道这是非正统的)。
谢谢。
【问题讨论】:
标签: nhibernate nhibernate-mapping