2011-12-09 18 views
0

このクエリをQueryOverでどのように記述できますか?nhibernate QueryOver - 複雑な副選択

select * from User usr where exists (select ord.ID from Order ord where ord.UserID = usr.ID)

私たちは..WithSubSelect.WhereProperty(x=>x.ID == subquery.as<int>())ようQueryOverでサブクエリを書くことができます知っています。しかし、私はwhere句でそれを使用するためにサブクエリのメインクエリのフィールドを使用したいと思います。

これは可能ですか?

は、あなたが

答えて

2
User userAlias = null; 
var subquery = QueryOver.Of<Order>() 
    .Where(o => o.User == userAlias) 
    // or 
    .Where(o => o.User.Id == userAlias.Id) 

var usersWithOrders = session.QueryOver(() => userAlias) 
    .WithSubqueries.WhereExists(subquery) 
    .List(); 
を助けてくれてありがとう
関連する問題