【问题标题】:NHibernate, mapping an association to same tableNHibernate,将关联映射到同一张表
【发布时间】:2011-11-05 16:05:20
【问题描述】:

我有一个实体 A,它有一个 IdParentId 列。

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

Parent 属性属于 A 类型。换句话说,ParentA的一个对象。

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

怎么了?

谢谢!

更新

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

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

然后是其他映射:

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

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

【问题讨论】:

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


    【解决方案1】:

    应该可以。确保您对 ParentId 到 Id 有一个外键约束,并且您可以尝试将 class="A, Assembly" 添加到您的多对一映射中以明确。

    【讨论】:

    • 嘿,谢谢。它在数据库中有 FK,我尝试了 class 属性,给出了映射类型的完整限定程序集名称,它仍然为空。
    • 这很奇怪。你能看看NH调试日志,看看正在生成什么sql吗?这可能有助于确定 NH 误解了什么。
    • 这是与 NHibernate 无关的另一件事。还是谢谢你。
    猜你喜欢
    • 1970-01-01
    • 2015-01-02
    • 1970-01-01
    • 2014-01-15
    • 1970-01-01
    • 2011-02-27
    • 2010-10-08
    • 2014-06-07
    • 2010-12-09
    相关资源
    最近更新 更多