Nhibernate 查询多对多项目

Nhibernate 查询多对多项目,nhibernate,fluent-nhibernate,many-to-many,queryover,Nhibernate,Fluent Nhibernate,Many To Many,Queryover,我有两个实体,通过称为父和子的多对多链接 在《孩子》一书中,我有很多父母 在父母方面,我有很多孩子 我正在尝试对一个链接到孩子的父母列表进行查询 从概念上讲,我在寻找这样的东西: var Query = session.QueryOver<Parent>() Query.Where(o => o.Children.Contains(child)); var Query=session.QueryOver() 其中(o=>o.Children.Contains(child))

我有两个实体,通过称为父和子的多对多链接

在《孩子》一书中,我有很多父母

在父母方面,我有很多孩子

我正在尝试对一个链接到孩子的父母列表进行查询

从概念上讲,我在寻找这样的东西:

var Query = session.QueryOver<Parent>()

Query.Where(o => o.Children.Contains(child));
var Query=session.QueryOver()
其中(o=>o.Children.Contains(child));
但这不起作用,那么我可以用什么方法让它起作用呢


谢谢

您需要使用JoinQueryOver

session.QueryOver<Parent>().JoinQueryOver<Child>(p => p.Childs)
       .Where(c => c.Id == child.Id)
session.QueryOver().JoinQueryOver(p=>p.Childs)
.Where(c=>c.Id==child.Id)
var query=session.QueryOver()
其中(o=>o.Children.Contains(child));

var query=session.query()
其中(o=>o.Children.Contains(child));

或者参见Vadim

我不知道没有显式连接就可以做到这一点。有些方法是受支持的,特别是在LINQ中,但每次都必须尝试,我很确定这不会编译
Any
接受lambda而不是对象。嗨,我只是想知道,joinqueryover是否会导致基于子对象的查询?或者我还能做一个.List()?
var query = session.QueryOver<Parent>()
    .Where(o => o.Children.Contains(child));
var query = session.Query<Parent>()
    .Where(o => o.Children.Contains(child));