【发布时间】:2009-09-24 01:32:39
【问题描述】:
我一直在尝试为我的电子商务应用程序使用 DDD 风格。我的大部分业务逻辑都是使用假存储库实现的。现在,我想使用 NHibernate 将我的域模型连接到一个真实的数据库。
我有一个包含 OrderLines 对象列表的类 Order
public IList<OrderLine> OrderLines{ ... } //line 1
在我的 OrderLine 类中,我有一个对父 Order 的引用,如下所示
2. public Order Order { set; get;} // line 2
根据我的理解,OrderLine 是一个Value 类而不是一个Entity 类,所以我将使用composite-element 来做映射。
<bag name="OrderLines" table="OrderLines" lazy="true">
<key column="Order_ID"/> <!--This is where I got confused. line 3-->
<composite-element class="OrderLine">
<!-- class attribute required -->
<many-to-one name="Order" class="Order" column="Order_ID"/> <!--Do I need this? line 4-->
...
</composite-element>
</bag>
请注意,在第 3 行中,我为映射创建了一个关键元素(语法要求这样做)。但是由于我在我的 OrderLine 类(第 2 行)中定义了对 Order 类的引用,我是否还需要在第 4 行创建一个映射?
【问题讨论】:
标签: nhibernate nhibernate-mapping domain-driven-design