按子集合的记录计数顺序

时间:2012-02-28 21:33:15

标签: nhibernate fluent-nhibernate

我正在尝试将一些旧代码转换为使用Fluent Nhibernate。

旧代码:

allOrders.OrderBy(x => x.OrdersLineItems.Count);

如何将其转换为:

query.AddOrder(new Order(????, true));

这甚至可能吗?

提前致谢

更新: 这是我想写的简化代码:

ICriteria query = FluentSessionManager.GetSession().CreateCriteria<Orders>()
     .AddOrder(new Order(????, true));

连接表是OrdersLineItems。我需要通过订单项的数量来设置订单。由于我正在使用具有超过500,000条记录的数据集的分页,只需将所有记录拉入内存然后对它们进行排序就不会。

提前致谢。

1 个答案:

答案 0 :(得分:0)

ICriteria query = FluentSessionManager.GetSession().CreateCriteria<Orders>()
   .CreateAlias("this.OrderLineItems", "oli")
   .AddOrder(new Order(Projections.Count("oli.Id"), true));

我应该这样想的。它可能并不完美,但至少说明你需要使用Projections.Count来完成它。