C# 同表NHibernate映射
如何使用Nhibernate定义相同的表关系映射(mappingbycode) 例如,假设我有一个类: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.
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将假定此关系的外键存储在与该类关联的表的列根结构上