2012-04-02 13 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に保存されていることを前提としています。

関連する問題