我需要在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执行此操作。对我来说问题是我必须如何声明子查询以及如何使用or
条件添加它。我希望,有人可以给我一个提示。谢谢。
最诚挚的问候,托马斯
答案 0 :(得分:-3)
试试这个
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之后的地方,但是试试吧