SubQuery nHibernate没有集合

时间:2014-10-14 14:51:55

标签: nhibernate collections subquery queryover

例如:

Tree treeAlias = null;

var nonRottenApples = QueryOver.Of<Apple>()
   .Where(a => !a.IsRotten)
   .Where(a => a.Tree.Id == treeAlias.Id)
   .Select(x => x.Id); //  <- optional

return NHibernateSession.QueryOver(() => treeAlias)
   .Where(t => t.Id.IsIn(ListOfTreeId))
   .WithSubquery.WhereExists(nonRottenApples)
   .List();

如何在Apple中收集SubQuery? 我在不同的地方进行研究,但我没有找到我的问题的结果。 所有结果都是收藏品。

1 个答案:

答案 0 :(得分:0)

我对您的问题的解释是,您正在尝试查询没有腐烂苹果的树木。

我相信这会奏效:

 var rottenTreeIds = QueryOver.Of<Apple>()
                             .Where(apple => apple.IsRotten)
                             .Select(a => a.Tree.Id);


 return NHIbernateSession.QueryOver<Tree>()
                         .Where(t => t.Id.IsIn(ListOfTreeId))
                         .WithSubquery.WhereProperty(t => t.Id).NotIn(rottenTreeIds)
                         .List();