我想通過翻譯'NHibernate in Action'中的代碼來學習NHibernate映射,我遇到了一個例子的問題。我已經介紹了我正在嘗試翻譯的XML和翻譯它的努力。代碼基本上具有類別和項目之間的多對多關係。它使用名爲CategorizedItem的組件類來維護兩個實體之間的關係。NHibernate複合元素映射的代碼
我遇到的問題是,一旦我在lambda中聲明瞭Category的Items屬性,Item類的屬性是唯一可用於在組件映射中選擇的屬性。我想讓映射知道CategorizedItem的屬性是要在關係中映射的屬性,但我對如何實現這一點感到不知所措。下面是我試圖翻譯的XML ...
<set name="Items" table="CATEGORY_ITEM" lazy="true" >
<key column="CATEGORY_ID"/>
<composite-element class="CategorizedItem">
<parent name="Category"/>
<many-to-one name="Item" class="Item" column="ITEM_ID" not-null="true"/>
<many-to-one name="User" class="User" column="USER_ID" not-null="true"/>
<property name="DateAdded" column="DATE_ADDED" not-null="true"/>
</composite-element>
</set>
...這裏是我已部分完成的映射。
Set(
category => category.Items,
map =>
{
map.Key(key =>
{
key.Column("CATEGORY_ID");
});
map.Table("CATEGORY_ITEM");
map.Lazy(CollectionLazy.Lazy);
},
r => r.Component(m =>
{
m.Class
})
);
該組件的類屬性看起來像可能的目標,但它拒絕將CategorizedItem作爲類型參數。任何幫助將不勝感激。
什麼意思「拒絕CategorizedItem」?編譯器錯誤,運行時錯誤,什麼錯誤信息?顯示您嘗試的完整代碼。 –
嗨@Stefan Steinegger, – MickySmig
您好@Stefan Steinegger,我無法給您一個錯誤信息,因爲我沒有得到的重點是我可以運行代碼。 – MickySmig