这是我的层次结构:
class abstract Entity { /*members*/ } // 映射到实体表
class abstract User : Entity { /*members*/ } // 映射到用户表
class Employee : User { /*no members*/ } // 没有表,discriminator = "E"
class Contractor : User { /*no members*/ } // 没有表,discriminator = "C"
这是我在两个单独的 hbm 文件中的映射:
<class name="Entity" table="entity" xmlns="urn:nhibernate-mapping-2.2">
<id name="id" column="id">
<generator class="guid.comb" />
</id>
<属性... />
</class>
<joined-subclass name="User" extends="Entity" table="user">
<key column="id" />
<鉴别列=“类型” />
<属性... />
<subclass name="Employee" discriminator-value="E" />
<subclass name="Contractor" discriminator-value="C" />
</joined-subclass>
以下是我得到的异常:
MappingException:XML 验证错误:命名空间“urn:nhibernate-mapping-2.2”中的元素“joined-subclass”在命名空间“urn:nhibernate-mapping-2.2”中具有无效的子元素“鉴别器”。
我错过了什么?你不能映射一个连接子类的可区分子类层次结构吗?