我正在尝试将一些旧代码转换为使用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条记录的数据集的分页,只需将所有记录拉入内存然后对它们进行排序就不会。
提前致谢。
答案 0 :(得分:0)
ICriteria query = FluentSessionManager.GetSession().CreateCriteria<Orders>()
.CreateAlias("this.OrderLineItems", "oli")
.AddOrder(new Order(Projections.Count("oli.Id"), true));
我应该这样想的。它可能并不完美,但至少说明你需要使用Projections.Count来完成它。