2011-10-09 127 views
0

我需要做QueryOver以下SQL NHibernate的子查詢:NHibernate的QueryOver用在有或

select * 
from Post post 
where post.User.Id = 1 
or post.Level in (1, 2, 3) 
or (select Id 
    from SubPost sub 
    where sub.Post = post 
    and sub.User.Id = 1) != null 

我不知道我現在該怎麼用QueryOver做到這一點。對我來說,問題是我必須聲明子查詢,以及如何使用or條件添加它。我希望有人能給我一個提示。謝謝。

最好的問候,托馬斯

回答

-2

試試這個

Post p = null; 
SubPost s = null; 
return session.QueryOver<Post>(() => p) 
      .where(() => p.User.Id == 1) 
      .Where(() => p.Level == 1 || p.Level == 2 || p.Lvel ==3) 
      .JoinAlias(() => s.Post ,() => p) 
      .Where(() => p.User.Id == 1) 
      .List<Post>(); 

我不肯定真正關心的第二個地方是在JoinAlias後,但嘗試