这是我的继承结构:
class abstract Entity { /*成员*/ } // 映射到entity表 class abstract User : Entity { /*成员*/ } // 映射到user表这是我在两个不同的hbm文件中的映射:
class Employee : User { /*没有成员*/ } // 没有表,鉴别器为“E” class Contractor : User { /*没有成员*/ } // 没有表,鉴别器为“C”
<class name="Entity" table="entity" xmlns="urn:nhibernate-mapping-2.2"> <id name="Id" column="id"> <generator class="guid.comb" /> </id> <property ... /> </class>以下是我收到的异常:
<joined-subclass name="User" extends="Entity" table="user"> <key column="id" /> <discriminator column="type" /> <property ... /> <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'的无效子元素'discriminator'。
我错过了什么?不能映射加入子类的鉴别子类继承结构吗?