0

我经历了几个 NHibernate 映射教程,但这部分对我来说似乎有点复杂。我在ayende 的网站上发现了一个使用超类中的区分值来解释每个类的表。就我而言,我没有使用区分值。

我怎样才能映射这个?

我有一个类似于以下的类结构。

在此处输入图像描述

“Student”和“Teacher”类都继承自“Person”抽象类。我需要每个类都应该映射到一个表而不使用超类中的区分值。

4

1 回答 1

1

假设有三个表:PersonTable, StudentTable, TeacherTable。我们可以使用

映射到PersonTable的基类将包含通用属性,并已ID生成。StudentTableTeacherTable将提供来自父母的 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>

现在我们每个超类和子类都有表,没有鉴别器

于 2013-01-14T11:44:58.010 回答