0
我經歷了幾個NHibernate映射教程,但這部分對我來說似乎並不複雜。一個我在ayende的網站上發現,這個網站使用超類中的歧視值來解釋每班的表格。在我的情況下,我沒有使用歧視值。用於繼承的每類nhibernate映射表。怎麼樣?
如何映射此?
我有類似於以下的類結構。
兩個「學生」和「老師」類都是從「人」的抽象類繼承。我需要將每個類映射到一張表,而不要在超類中使用歧視值。
我經歷了幾個NHibernate映射教程,但這部分對我來說似乎並不複雜。一個我在ayende的網站上發現,這個網站使用超類中的歧視值來解釋每班的表格。在我的情況下,我沒有使用歧視值。用於繼承的每類nhibernate映射表。怎麼樣?
如何映射此?
我有類似於以下的類結構。
兩個「學生」和「老師」類都是從「人」的抽象類繼承。我需要將每個類映射到一張表,而不要在超類中使用歧視值。
假設有三個表格:PersonTable
,StudentTable
,TeacherTable
。我們可以使用映射
基類代碼PersonTable將包含公共屬性,並有產生ID
。 StudentTable和TeacherTable會從父
<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>
現在我們必須每每個超和子類表中提供的ID,沒有鑑別