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

C# NHibernate,将关联映射到同一个表,c#,visual-studio-2010,nhibernate,c#-4.0,.net-4.0,C#,Visual Studio 2010,Nhibernate,C# 4.0,.net 4.0,我有一个实体A,它有一个Id和ParentId列 目前,我正在使用多对一关系映射它 父属性的类型为A。换句话说,父属性是A的对象 基本上,问题是属性“Parent”总是空的,但这是不正确的,因为数据库已为ParentID分配了正确的标识符 怎么了 谢谢大家! 更新 我得到一个暗示。事实上,我还有另一个实体,它映射了A的许多实例 如果我得到另一个实体,它有一个集合,一个实体的父属性被卸载。另一方面,如果我通过Id获取A,则会按预期加载父级 这与其他映射有关: <set name="Field

我有一个实体A,它有一个Id和ParentId列

目前,我正在使用多对一关系映射它

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

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

怎么了

谢谢大家!

更新

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

如果我得到另一个实体,它有一个集合,一个实体的父属性被卸载。另一方面,如果我通过Id获取A,则会按预期加载父级

这与其他映射有关:

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

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


这应该是可行的。确保ParentId到Id上有外键约束,可以尝试将class=“A,Assembly”添加到多对一映射中,使其显式化。

嘿,谢谢。它在数据库中有FK,我尝试过使用class属性提供映射类型的完整限定程序集名称,但它仍然为null。这很奇怪。您可以查看NH调试日志并查看正在生成的sql吗?这可能有助于确定NH误解了什么。这是另一件与NHibernate无关的事情。无论如何,谢谢你。