nhibernate:映射到主键以外的列
我有下面的地图。我的目的是将order.BasketId映射到orderItem.BasketId。但是当我看到sql时,我看到它是映射的 order.Id到orderItem.BasketId。如何在订单映射中定义要映射到basketId的订单属性。它似乎默认为主键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">
<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问题