这是我的层次结构:
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”中具有无效的子元素“鉴别器”。
我错过了什么?你不能映射一个连接子类的可区分子类层次结构吗?