2016-12-31 94 views
0
一些条件的孩子名单

我在NHibernate的下面书写的查询的孩子名单一起:我怎样才能列出与在具有NHibernate的

var queryResult = CurrentSession.QueryOver() 
           .Where(r => r.StatusId == 1) 
           .JoinQueryOver(a => a.ActorList) 
           .Where(s=>s.IsActor==1) 
           .List() 
           .Distinct() 
           .ToList(); 

我想只检索Where(s=>s.IsActor==1),但它是获取记录 Where(s=>s.IsActor==0)还...

我怎样才能得到只有IsActor==1记录?

由于提前

+0

它必须是查询吗?你可以使用LINQ吗? –

+0

它只能查询 –

+0

在这里运行两个查询可能会更容易,一个用于顶级对象,另一个用于关联集合... –

回答

0

您需要在连接到指定的谓词,所以它适用于加入不顶,其中:

(看起来像...LEFT JOIN actor on actor.Id = p.ActorId AND IsActor = 1

Actor actorAlias = null; 
var queryResult = CurrentSession.QueryOver() 
        .Where(r => r.StatusId == 1) 
        .Left.JoinQueryOver(r => r.ActorList,() => actorAlias, a => a.IsActor==1) 
        .List() 
        .Distinct() 
        .ToList();