我经历了几个 NHibernate 映射教程,但这部分对我来说似乎有点复杂。我在ayende 的网站上发现了一个使用超类中的区分值来解释每个类的表。就我而言,我没有使用区分值。
我怎样才能映射这个?
我有一个类似于以下的类结构。
“Student”和“Teacher”类都继承自“Person”抽象类。我需要每个类都应该映射到一个表而不使用超类中的区分值。
我经历了几个 NHibernate 映射教程,但这部分对我来说似乎有点复杂。我在ayende 的网站上发现了一个使用超类中的区分值来解释每个类的表。就我而言,我没有使用区分值。
我怎样才能映射这个?
我有一个类似于以下的类结构。
“Student”和“Teacher”类都继承自“Person”抽象类。我需要每个类都应该映射到一个表而不使用超类中的区分值。
假设有三个表:PersonTable
, StudentTable
, TeacherTable
。我们可以使用
映射到PersonTable的基类将包含通用属性,并已ID
生成。StudentTable和TeacherTable将提供来自父母的 ID
<class name="Person" table="PersonTable" abstract="true">
<id name="PID" type="Int32" column="PersonId">
<generator class="native"/>
</id>
<!-- common properties of a Person -->
<property name="FirstName" />
<property name="LastName" />
<property name="DOB" />
<property name="Gender" />
<!-- Student and its own table -->
<joined-subclass name="Student" table="StudentTable">
<key column="SutdentID"/> <!-- Filled with PersonId value from a base -->
<property name="Grade" />
</joined-subclass>
<!-- Teacher and its own table -->
<joined-subclass name="Teacher" table="TeacherTable">
<key column="TeacherId"/><!-- Filled with PersonId value from a base -->
<property name="Subjects" />
</joined-subclass>
</class>
现在我们每个超类和子类都有表,没有鉴别器