2012-04-02 55 views
0

我如何去定义使用NHibernate同桌的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

有递归映射我所知没有特殊的映射。就像映射一个不同类的集合一样。你的情况,这应该工作(虽然未经测试):

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

NHibernate的会假设此关系的外键存储在相关联的那类表的列rootStructure。