【问题标题】:Order by record count on sub collection按子集合上的记录计数排序
【发布时间】:2012-02-28 21:33:15
【问题描述】:

我正在尝试将一些旧代码转换为使用 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 条记录的数据集使用分页,因此只需将所有记录拉入内存然后对其进行排序就不会。

提前致谢。

【问题讨论】:

标签: nhibernate fluent-nhibernate


【解决方案1】:
ICriteria query = FluentSessionManager.GetSession().CreateCriteria<Orders>()
   .CreateAlias("this.OrderLineItems", "oli")
   .AddOrder(new Order(Projections.Count("oli.Id"), true));

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

【讨论】:

  • 像冠军一样工作。非常感谢。
猜你喜欢
  • 2017-07-24
  • 1970-01-01
  • 1970-01-01
  • 2020-09-15
  • 1970-01-01
  • 1970-01-01
  • 2022-01-10
  • 1970-01-01
  • 2019-09-26
相关资源
最近更新 更多