我想用Nhibernate 3.0開發我的第一個項目。 我經歷了大量材料(博客,論文和樣本),我認爲我可以理解基本知識。
我想我已經理解了不同類型的收集的含義,但比當我看到互聯網上發現的例子時,我認爲我還沒有真正理解。
該文檔說,如果您希望允許重複項目時不需要重複項和列表/包,則應該使用Set。 我發現的大多數樣本都是基於您訂單/訂單行的典型情況。 如果我有訂單的查找映射文件,我可以看到這樣的事情:NHibernate和集合類型
<class name="OrderHeader"
table="Orders">
<id name="OrderId">
<generator class="hilo"/>
</id>
<property name="OrderDate"/>
<bag name="OrderItems" table="OrderDetails" cascade="all" inverse="true">
<key column="OrderId"/>
<one-to-many class="OrderDetail"/>
</bag>
</class>
<class name="OrderDetail"
table="OrderDetails">
<id name="DetailId">
<generator class="hilo"/>
</id>
<many-to-one name="ProductOrdered" column="ProductId"/>
<many-to-one name="Order" column="OrderId" />
</class>
我expcted看到映射爲一個集的OrderItems;訂單將有獨特的OrderItems?
對嗎? 同時,我希望找到一個映射類產品的OrderItems
...
<bag lazy="true" name="OrderItems">
<key foreign-key="FK_OrderItems_Products">
<column name="ProductCode" />
</key>
.....
</bag>
...
在這種情況下一個產品將具有非唯一的OrderItems的名單袋。
我有什麼遺漏?
原諒我所有的愚蠢的問題:-s
謝謝傑米,這正是我所做的:我宣佈集合爲ICollection並初始化爲HashSet 因爲我不想引用Iesi.Collections。 –
LeftyX
2011-01-12 22:10:19