NHibernate制图袋,带有来自物业属性的钥匙

时间:2016-08-23 20:43:21

标签: c# nhibernate

我有以下结构:

public class Version
{
    public Status Status;
}

public class Status
{
    Action Action;
    Area Area;

    public IList<Version> Versions
}

public class Action
{
    public int Id;
}

public class Area
{
    public int Id;
}

我想用一个包映射版本列表,但我可能以错误的方式映射它。 以下是映射列表的Status.hbm.xml文件的参与者:

<bag name="Versions" cascade="save-update" inverse="true" lazy="true" generic="true" order-by="num_version desc">
  <key>
    <column name="id_action"></column>
    <column name="id_area"></column>
  </key>
  <one-to-many class="Version" />
</bag>

id_actionid_area是来自Status的外键,它是Version的属性。我是否需要在此包映射上引用Status? 我该如何映射这个案子?

谢谢

1 个答案:

答案 0 :(得分:0)

我能够找到问题:我在答案中使用的映射几乎是正确的。 但是,我需要反转映射列的顺序。因为两个键(操作和区域)必须与status.hbm.xml文件的映射中定义的顺序相同。

所以,纠正就是这样做的:

<bag name="Versions" cascade="save-update" inverse="true" lazy="true" generic="true" order-by="num_version desc">
  <key>
    <column name="id_area"></column>
    <column name="id_action"></column>
  </key>
  <one-to-many class="Version" />
</bag>