2012-05-02 5 views
1

私が持っているように、テーブル:私はC1を持っている場合は、どのようにこれで(最後の子C3を取得するように自己参照表階層で最後の子を取得する方法は?

Id CycleNo ParentId 
C1 1   null 
C2 2   C1 
C3 3   C2 

そして....
:などのデータを持っている

public class Cycle  
{ 
    public Guid Id 
    public int CycleNo 
    public Cycle ParentCycle 
} 

場合)?

答えて

1

があなたのノードの完全なツリーを取得あなたの貴重な入力のための 感謝..:(クエリ、またはのcreateCriteriaを使用して、または同等の)

session.CreateQuery(
    "select c from Cycle c join fetch c.ParentCycle where c.Id = 'C1'" 
) 
.SetResultTransformer(new DistinctRootEntityResultTransformer()) 
.List<Cycle>(); 

参照:http://ayende.com/blog/4151/nhibernate-tips-tricks-efficiently-selecting-a-tree

その後トラバースそれは記憶にある。

関連する問題