C# 同表NHibernate映射

C# 同表NHibernate映射,c#,nhibernate,mapping,nhibernate-mapping,C#,Nhibernate,Mapping,Nhibernate Mapping,如何使用Nhibernate定义相同的表关系映射(mappingbycode) 例如,假设我有一个类: public class Structure{ public int structureId; public string structureName; public Structure rootStructure; } 它引用与根结构相同的类 mapper.Class<Structure>(m => { m.

如何使用Nhibernate定义相同的表关系映射(mappingbycode)

例如,假设我有一个类:

public class Structure{
 public int structureId;
 public string structureName;
 public Structure rootStructure;
}
它引用与根结构相同的类

 mapper.Class<Structure>(m =>
            {
                m.Lazy(true);
                m.Id(u => u.structureId, map => { map.Generator(Generators.Identity); });
                m.Property(c => c.structureName);
                m.? // Same table mapping 
}
 ;
mapper.Class(m=>
{
m、 懒惰(真);
m、 Id(u=>u.structureId,map=>{map.Generator(Generators.Identity);});
m、 属性(c=>c.structureName);
m、 ?//相同的表映射
}
;

谢谢

我知道递归映射没有特殊的映射。只需像映射其他类的集合一样映射它。在您的情况下,这应该可以工作(但未经测试):

m.OneToOne(c=>c.rootStructure,a=>a.Lazy(LazyRelation.Proxy))

NHibernate将假定此关系的外键存储在与该类关联的表的列根结构上