我正在尝试使用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
干杯
修改 假设这是一种单向关系,即。小猫不知道猫
答案 0 :(得分:0)
你的例子似乎相当微不足道。如果您已经拥有父级并且将集合映射为cat实体中的一对多,则在延迟加载时您只需要访问集合即可。
如果你只拥有父母的身份证,你甚至可以轻松地做这样的事情而不需要加入:
IList<Kitten> kittens = session.QueryOver<Kitten>()
.Where(k => k.CatId == <parent cat id here>)
.List<Kitten>()