C# NHibernate QueryOver,其中包含子查询,其中包含或

C# NHibernate QueryOver,其中包含子查询,其中包含或,c#,nhibernate,subquery,queryover,C#,Nhibernate,Subquery,Queryover,我需要在NHibernate中使用QueryOver执行以下SQL操作: 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做到这一点。我的问题是如何声明子查询,以及如何使

我需要在NHibernate中使用QueryOver执行以下SQL操作:

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做到这一点。我的问题是如何声明子查询,以及如何使用
条件添加它。我希望有人能给我一个提示。多谢各位

向你问好,托马斯试试这个

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>();
Post p=null;
子帖子s=null;
return session.QueryOver(()=>p)
.其中(()=>p.User.Id==1)
其中(()=>p.Level==1 | | p.Level==2 | | p.Lvel==3)
.JoinAlias(()=>s.Post,()=>p)
.其中(()=>p.User.Id==1)
.List();
我不确定JoinAlias后面的第二个位置,但是试试看