2011-10-09 2 views
0

мне нужно сделать следующий SQL с QueryOver в 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, но попробовать

Смежные вопросы