Nhibernate 如何获取自引用表层次结构中的最后一个子级?

Nhibernate 如何获取自引用表层次结构中的最后一个子级?,nhibernate,fluent-nhibernate,Nhibernate,Fluent Nhibernate,我有一张像这样的桌子: public class Cycle { public Guid Id public int CycleNo public Cycle ParentCycle } 其数据如下: Id CycleNo ParentId C1 1 null C2 2 C1 C3 3 C2 等等…… 如果我有c1,如何得到最后一个孩子C3(在这种情况下)? 谢谢你的宝贵意见 获

我有一张像这样的桌子:

public class Cycle     
{
    public Guid Id 
    public int CycleNo 
    public Cycle ParentCycle 
}
其数据如下:

Id  CycleNo  ParentId  
C1  1         null  
C2  2         C1  
C3  3         C2  
等等……
如果我有c1,如何得到最后一个孩子C3(在这种情况下)?
谢谢你的宝贵意见

获取节点的完整树:

session.CreateQuery(
    "select c from Cycle c join fetch c.ParentCycle where c.Id = 'C1'"
)
.SetResultTransformer(new DistinctRootEntityResultTransformer())
.List<Cycle>();
session.CreateQuery(
“从循环c连接获取c.ParentCycle中选择c,其中c.Id='C1'”
)
.SetResultTransformer(新DistincTrotentyResultTransformer())
.List();
(或使用查询或CreateCriteria的等效项)

见:


然后在内存中遍历它。

获取节点的完整树:

session.CreateQuery(
    "select c from Cycle c join fetch c.ParentCycle where c.Id = 'C1'"
)
.SetResultTransformer(new DistinctRootEntityResultTransformer())
.List<Cycle>();
session.CreateQuery(
“从循环c连接获取c.ParentCycle中选择c,其中c.Id='C1'”
)
.SetResultTransformer(新DistincTrotentyResultTransformer())
.List();
(或使用查询或CreateCriteria的等效项)

见:

然后在内存中遍历它