如何使用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子句中使用它。
这可能吗?
谢谢你的帮助
答案 0 :(得分: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();