NHibernate,将关联映射到同一个表

时间:2011-11-05 16:05:20

标签: c# visual-studio-2010 nhibernate c#-4.0 .net-4.0

我有一个实体 A ,其中包含 Id ParentId 列。

目前我正在使用多对一关系<many-to-one name="Parent" column="ParentID" />映射它。

属性的类型为 A 。换句话说, Parent A 的对象。

基本上问题是属性“Parent”总是 null ,但这是不正确的,因为数据库已为 ParentID 分配了正确的标识符。

怎么了?

谢谢!

更新

我得到了一个暗示。事实上,我有另一个实体来映射 A 的许多实例。

如果我得到另一个拥有 A 集合的实体,那么 A 实体会卸载其 Parent 属性。另一方面,如果我通过 Id 获得 A Parent 会按预期加载。

然后是其他映射:

<set name="Fields" table="A" cascade="all-delete-orphan" lazy="false">
  <key column="AID" />

  <one-to-many
    class="A"
  />
</set>

1 个答案:

答案 0 :(得分:1)

那应该有用。确保在ParentId到Id上有外键约束,并且可以尝试将class =“A,Assembly”添加到多对一映射中以显式化。