同桌NHibernate映射

时间:2012-04-02 10:01:35

标签: c# nhibernate mapping nhibernate-mapping

如何使用Nhibernate

定义相同的表关系映射(mappingbycode) 例如,假设我有一个班级:

public class Structure{
 public int structureId;
 public string structureName;
 public Structure rootStructure;
}

引用与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 
}
 ;

由于

1 个答案:

答案 0 :(得分:1)

我知道没有针对递归映射的特殊映射。只需映射它就像映射不同类的集合一样。在你的情况下,这应该工作(虽然未经测试):

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

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