0

参考:从不同表中选择的nhibernate标准

基于这个问题,我想过滤这个检索到的最后 5 个订单,例如 Unit.Amount == 5!(添加过滤器)我认为有可能是这样的:

var query = m_hibernateSession.QueryOver<Model.Order>()
// .Where(x => x.Units[].Amount == 5) ... // which Unit to select in this list?
.OrderBy(x => x.PONumber).Desc.Take(5);

有人可以帮我找到正确的查询吗?

谢谢

4

1 回答 1

1

使用连接应该可以解决您的问题

Order orderAlias = null;
Unit unitsAlias = null;
var query = session.QueryOver<Order>(() => orderAlias)
  .JoinAlias(() => orderAlias.Units, () => unitsAlias, JoinType.InnerJoin)
  .Where(() => unitsAlias.Amount == 5)
  .OrderBy(x => x.PONumber).Desc.Take(5);
于 2013-05-08T09:33:16.520 回答