NHibernate Step By Step(2)-继承映射
生活随笔
收集整理的這篇文章主要介紹了
NHibernate Step By Step(2)-继承映射
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
分三種
1.單表繼承
既然是單表繼承就需要一個鍵值來標(biāo)識類別
(1)父類
(2)子類
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" default-lazy="false"> <subclass extends="NHibernate.Test.Subclass.SubclassBase, NHibernate.Test" name="NHibernate.Test.Subclass.SubclassOne, NHibernate.Test" discriminator-value="SUB" > <property name="OneTestLong" column="one_test_long" type="Int64" /> </subclass> </hibernate-mapping>
(3)生成的數(shù)據(jù)庫測試數(shù)據(jù)
看圖更能理解意圖
2.鑒別器
這里看一下鑒別器的使用,可以指定鑒別器的值,以辨別不同的類,如下:
多個類映射到同張表,Foo 類以Green標(biāo)識,Baz 則具備了Color 屬性,Foo可以說是Baz的特殊類別,都是通過配置文件來實(shí)現(xiàn)
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" default-lazy="false" namespace="NHibernate.Test.Subclass.EnumDiscriminator" assembly="NHibernate.Test"> <class name="Foo" table="subclass_enumdiscriminator" discriminator-value="Green"> <id name="Id" type="Int64"> <generator class="assigned"/> </id> <discriminator column="Color" type="NHibernate.Test.Subclass.EnumDiscriminator.Colors, NHibernate.Test"/> <subclass name="Bar" discriminator-value="Blue"/> </class> <class name="Baz" table="subclass_enumdiscriminator"> <id name="Id" type="Int64"> <generator class="assigned"/> </id> <property name="Color"/> </class> </hibernate-mapping>測試數(shù)據(jù)
3.每個子類一張表(具備與父類有關(guān)聯(lián)關(guān)系的)
映射文件
生成表結(jié)構(gòu)
?
4.無關(guān)聯(lián)關(guān)系的繼承表
即每張表都會生成父類的字段
<class name="Person" table="UPerson"> <id name="id" column="person_id" unsaved-value="0"> <generator class="hilo"/> </id> <property name="name" unique-key="NameUniqueKey" not-null="true" length="80"/> <property name="sex" not-null="true" update="false"/> <component name="address"> <property name="address" index="AddressIndex"/> <property name="zip" index="AddressIndex"/> <property name="country"/> </component> <union-subclass name="Employee" table="UEmployee"> <property name="title" not-null="true" length="20"/> <property name="salary" /> <many-to-one name="manager"/> </union-subclass> <union-subclass name="Customer" table="UCustomer"> <property name="comments"/> <many-to-one name="salesperson"/> </union-subclass> </class>數(shù)據(jù)庫表結(jié)構(gòu)
轉(zhuǎn)載于:https://www.cnblogs.com/Clingingboy/archive/2009/08/02/1536971.html
總結(jié)
以上是生活随笔為你收集整理的NHibernate Step By Step(2)-继承映射的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AS3工程中的Loading的应用
- 下一篇: lenovo 一键恢复6.0 NOVO下