从nhibernate QueryOver返回TSubType

时间:2011-07-22 01:22:58

标签: nhibernate hql queryover nhibernate-criteria

我正在尝试使用nhibernate中的QueryOver从父集合中选择子节点。 这就是我想在HQL中做的事情:

SELECT as_kitten FROM Cat as_Cat 
JOIN as_Cat.Kittens as_kitten 

这如何转换为QueryOver或甚至使用JoinAlias?

IList<Kitten> kittens =  session.QueryOver<Cat>()
        .JoinQueryOver<Kitten>(c => c.Kittens)
        .Select(??)
        .List()

到目前为止,我能找到的最接近的是NHibernate QueryOver

干杯

修改 假设这是一种单向关系,即。小猫不知道猫

1 个答案:

答案 0 :(得分:0)

你的例子似乎相当微不足道。如果您已经拥有父级并且将集合映射为cat实体中的一对多,则在延迟加载时您只需要访问集合即可。

如果你只拥有父母的身份证,你甚至可以轻松地做这样的事情而不需要加入:

IList<Kitten> kittens =  session.QueryOver<Kitten>()
        .Where(k => k.CatId == <parent cat id here>)
        .List<Kitten>()