nhibernate映射Ilist与复合元素

时间:2009-09-24 01:32:39

标签: nhibernate nhibernate-mapping domain-driven-design

我一直在努力为我的电子商务应用程序使用DDD样式。我的大多数业务逻辑都是使用虚假存储库实现的。现在,我想使用NHibernate将我的Domain Model挂钩到一个真正的数据库。

我有一个订单,其中包含OrderLines对象列表

public IList<OrderLine> OrderLines{ ... } //line 1

在我的OrderLine类中,我有一个对父订单的引用,如下所示

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行创建映射?

1 个答案:

答案 0 :(得分:0)

您不需要第4行。

你可以在stackoverflow的另一个主题中找到关于这个主题的很好的解释:Nhibernate , collections and compositeid