【发布时间】:2011-01-13 04:11:28
【问题描述】:
我正在尝试使用 Nhibernate 3.0 开发我的第一个项目。
我浏览了大量材料(博客、论文和示例),我认为我可以理解基本知识。
我想我已经理解了不同类型集合的含义,但是当我看到网上找到的例子时,我觉得我还没有真正理解。
文档说当你不想重复时你应该使用 Set ,当你想要允许重复时应该使用 List/Bag 。
我发现的大多数示例都是基于您有 Orders/OrderLines 的典型情况。
如果我查看订单的映射文件,我会看到如下内容:
<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>
我曾期望看到 OrderItems 映射为一个集合;一个订单会有唯一的 OrderItems 吗?
我对吗?
同时,我希望找到一个类 Product 的映射,一包 OrderItems
...
<bag lazy="true" name="OrderItems">
<key foreign-key="FK_OrderItems_Products">
<column name="ProductCode" />
</key>
.....
</bag>
...
在这种情况下,产品会有一个非唯一的 OrderItem 列表。
我有什么遗漏吗?
原谅我这个愚蠢的问题:-s
【问题讨论】:
标签: nhibernate nhibernate-mapping