2011-12-14 32 views
2

我有2個實體,通過多對多被稱爲父級和子級。QueryOver多對多項目

在孩子我父母的一個IList,

在家長我有童車的一個IList。

我正在嘗試對父母列表進行查詢,這是與孩子相關的。

概念明智的,我期待這樣的事情:

var Query = session.QueryOver<Parent>() 

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

但是這是不行的,所以我能得到什麼樣的方式這個工作?

謝謝!

回答

3

您需要使用JoinQueryOver

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

喜,只是想知道,是否joinqueryover導致基於孩子,而不是查詢?或者我還可以做一個.List ()? – RicL 2011-12-15 01:36:48

+0

經過測試,似乎按照我的要求工作。謝謝! – RicL 2011-12-15 02:22:08

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

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

或看到瓦迪姆