nhibernate:映射到主键以外的列

nhibernate:映射到主键以外的列,nhibernate,nhibernate-mapping,Nhibernate,Nhibernate Mapping,我有下面的地图。我的目的是将order.BasketId映射到orderItem.BasketId。但是当我看到sql时,我看到它是映射的 order.Id到orderItem.BasketId。如何在订单映射中定义要映射到basketId的订单属性。它似乎默认为主键 <class name="Order" table="Orders"> <id name="Id" type="Int32" column="Order_ID" unsaved-value="0">

我有下面的地图。我的目的是将order.BasketId映射到orderItem.BasketId。但是当我看到sql时,我看到它是映射的 order.Id到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>

和订单项

  <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>

你能改变结构吗?我将有一个篮子实体,其中包含订单项。然后,您的订单将引用该篮子,该篮子包含项目。顺序中的显式basketID绕过了hibernate所做的一些ORM。

您能改变结构吗?我将有一个篮子实体,其中包含订单项。然后,您的订单将引用该篮子,该篮子包含项目。顺序中的显式basketID绕过了hibernate的一些ORM。

使用以下命令:

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

就这样。

使用以下方法:

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


就是这样。

我继承了这个数据库结构,它非常混乱。理想情况下,我会像你说的那样改变它,但我不确定这将如何影响应用程序的其余部分,有点陷入无人区,我继承了这个数据库结构,这是一个混乱。理想情况下,我会像你说的那样更改它,但我不确定这会如何影响应用程序的其余部分,有点像是在无人区,谢谢!这对我帮助很大!我注意到在我的多对一类的子关系上需要属性ref属性。但是这导致了一个选择N+1的问题谢谢!这对我帮助很大!我注意到在我的多对一类的子关系上需要属性ref属性。但这导致了选择N+1问题