我想用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