nhibernate:映射到主键以外的列

时间:2010-05-15 09:52:32

标签: nhibernate nhibernate-mapping

我有以下地图。我的意图是order.BasketId映射到orderItem.BasketId。当我看到sql时,我发现它是映射 order.Id to orderItem.BasketId。如何在我的订单映射中定义要映射到basketId的订单属性。它似乎默认为主键。

 <class name="Order" table="Orders">
    <id name="Id" type="Int32" column="Order_ID" unsaved-value="0">
      <generator class="identity"/>
    </id>

    <property name="BasketId" column="Basket_ID" type="Int32"/>
    <set name="OrderItems" table="item_basket_contents" generic="true" inverse="true"  >
      <key column="Basket_ID" />
     <one-to-many class="EStore.Domain.Model.OrderItem, EStore.Domain"/>      
    </set>
  </class>

和orderItem

  <class name="OrderItem" table="Item_Basket_Contents">
    <id name="Id" type="Int32" column="ID" unsaved-value="0">
      <generator class="identity"/>
    </id>

    <property name="BasketId" column="Basket_ID" type="Int32"/>
  </class>

2 个答案:

答案 0 :(得分:8)

使用以下内容:

<key column="Basket_ID" property-ref="BasketId" />

就是这样。

答案 1 :(得分:0)

你能改变结构吗?我会有一个篮子实体,其中包含订单商品。然后您的订单引用此篮子,篮子包含物品。 Order中的显式basketID正在规避hibernate所做的一些ORM。