QueryOver多对多项

时间:2011-12-14 17:00:48

标签: nhibernate fluent-nhibernate many-to-many queryover

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

在Child,我有一个家长的IList,

在家长中我有一个孩子的IList。

我正在尝试对父母列表进行查询,该列表与孩子有关。

从概念上讲,我正在寻找类似的东西:

var Query = session.QueryOver<Parent>()

Query.Where(o => o.Children.Contains(child));

但是这不起作用,那么我有什么方法可以让它发挥作用呢?

谢谢!

2 个答案:

答案 0 :(得分:3)

您需要使用JoinQueryOver

session.QueryOver<Parent>().JoinQueryOver<Child>(p => p.Childs)
       .Where(c => c.Id == child.Id)

答案 1 :(得分:2)

var query = session.QueryOver<Parent>()
    .Where(o => o.Children.Contains(child));

var query = session.Query<Parent>()
    .Where(o => o.Children.Contains(child));

或参见Vadim