2013-02-27 120 views
0

我想实现这个层次:NHibernate。混合继承策略

BaseOrder --> Order --> ConstOrder 

我的映射: BaseOrder.hbm

<class name="BaseOrder, BackOffice.Core" abstract="true"> 
    <id name="Id" unsaved-value="0" type="int"> 
     <column name="id" not-null="true"/> 
     <generator class="hilo"> 
     <param name="max_lo">0</param> 
     <param name="where">table_name = 'orders'</param> 
     </generator> 
    </id> 

</class> 

Order.hbm

<union-subclass name="Order, Transport.Core" table="order" extends="BaseOrder, BackOffice.Core"> 
    <property name="PeopleNum"> 
    <column name="people_num" length="64"/> 
    </property>  
</union-subclass> 

ConstOrder.hbm

<joined-subclass name="ConstOrder, Transport.Core" table="const_order" extends="Order, Transport.Core"> 
     <key column="Id"/> 
     <property name="PeriodType"> 
     <column name="period_type"/> 
     </property> 
    </joined-subclass> 

好的。我从每个具体类的Table开始,然后用每个子类的Table完成。 而且我有一些问题:

ICriteria criteria = session.CreateCriteria(typeof(ConstOrder)); 
return criteria.List<ConstOrder>() as List<ConstOrder>; 

是我继承映射可能吗?我怎样才能得到ConstOrders?

回答

0

NH并不支持mixin继承策略。