[英]nhibernate : One to One mapping
我有以下地圖。 我希望將BasketItem映射到“Product”類。 所以基本上當我通過籃子迭代時我可以獲得產品名稱
<class name="BasketItem" table="User_Current_Basket">
<id name="Id" type="Int32" column="Id" unsaved-value="0">
<generator class="identity"/>
</id>
<property name="ProductId" column="Item_ID" type="Int32"/>
<one-to-one name="Product"
class="Product"></one-to-one>
</class>
如何指定該產品應該與Product.Id匹配BasketItem.ProductId
另外我讀過我應該避免一對一,只使用一對多? 如果我這樣做,我如何確保我只獲得一個產品而不是一個集合。
//編輯
select * from BasketItem
inner join Products on BasketItem.Item_ID = Products.Item_ID
如何指定該產品應該與Product.Id匹配BasketItem.ProductId
您的BasketItem
應該在對象級別持有Product
,而不是ProductId
。 映射應該是:
<class name="BasketItem" table="User_Current_Basket">
<id name="Id" type="Int32" column="Id" unsaved-value="0">
<generator class="identity"/>
</id>
<one-to-one name="Product" class="Product"/>
</class>
另外我讀過我應該避免一對一,只使用一對多? 如果我這樣做,我如何確保我只獲得一個產品而不是一個集合。
如果您希望能夠延遲加載Product
,請選擇“假”多對一:
<class name="BasketItem" table="User_Current_Basket">
<id name="Id" type="Int32" column="Id" unsaved-value="0">
<generator class="identity"/>
</id>
<many-to-one name="Product" class="Product"/>
</class>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.