我只是想编写一个看起来像这样并且急切加载的查询:
Select * from Users where Id IN (1,2,3)
Select * from Bids where UserId in (1,2,3)
现在它导致了问题,因为连接返回了太多结果。
答案 0 :(得分:0)
尝试使用multicriteria(或本示例中的Future),应该在1个批次中发出2个查询并为您提供热切的加载:
var bids = Session.QueryOver<Bid>()
.JoinQueryOver(b => b.User)
.WhereRestrictionOn(u => u.Id).IsIn(ids)
.Future<Bid>();
var users = Session.QueryOver<User>()
.WhereRestrictionOn(u => u.Id).IsIn(ids)
.List<User>();
唯一的问题是它会加入竞价 - &gt;用户,以避免您可以使用HQL:
var bids = Session.CreateQuery("from Bid b where b.User.id in (:userIds)")
.SetParameterList("userIds", ids)
.Future<Bid>();
var users = Session.QueryOver<User>()
.WhereRestrictionOn(u => u.Id).IsIn(ids)
.List<User>();