使用queryover按月和年份分组

时间:2012-04-04 16:50:28

标签: c# nhibernate group-by queryover

我有一个模型,其中包含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. 16/03/2012 400
  7. 我会得到:

    1. 01/2012 400
    2. 02/2012 600
    3. 03/2012 800
    4. 到目前为止,我没有找到使用QueryOver实现此目的的方法。 当我试着查看日期的月/年部分时,我一直得到“无法解决财产问题”。

      那些问题:

      Group posts by year, then by month

      Group/Sort by Date Year/Month, Partial Select with NHibernate (Projection? Transformation?)

      使用LINQ得到了回答 - 而不是我正在寻找的。

      有什么想法吗? 感谢

      (使用NHibernate 3.2)

1 个答案:

答案 0 :(得分:2)

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

如果你必须使用QueryOver,你可以这样做:

session.QueryOver<...>()
   .SelectList(list => list
      .Select(GroupProperty(Projections.SqlProjection(...)))
      .SelectSum(x => x.Price)
   );
相关问题