2

我有一个模型,其中包含一个 DateTime 字段和一个 Price 字段。我想得到一个列表,让我汇总月/年 - 数据的价格:

  1. 15/01/2012 200
  2. 16/01/2012 200
  3. 15/02/2012 300
  4. 16/02/2012 300
  5. 15/03/2012 400
  6. 2012 年 3 月 16 日 400

我会得到:

  1. 01/2012 400
  2. 02/2012 600
  3. 03/2012 800

到目前为止,我还没有找到使用 QueryOver 实现此目的的方法。当我尝试查看日期的月/年部分时,我不断收到“无法解析属性”。

那些问题:

按年分组帖子,然后按月分组

按日期年/月分组/排序,使用 NHibernate 进行部分选择(投影?转换?)

使用 LINQ 得到了回答——不是我要找的。

有任何想法吗?谢谢

(使用 NHibernate 3.2)

4

1 回答 1

2

QueryOver 不是一个好的选择,因为分组需要使用 SQL 表达式来完成。对于这种类型的查询,QueryOver 只是一个没有任何价值的毫无意义的抽象。

如果您必须使用 QueryOver 执行此操作,您可以执行以下操作:

session.QueryOver<...>()
   .SelectList(list => list
      .Select(GroupProperty(Projections.SqlProjection(...)))
      .SelectSum(x => x.Price)
   );
于 2012-04-05T00:33:34.370 回答