2

DateTimeフィールドとPriceフィールドを含むモデルがあります。月/年の集計を示すリストを取得したいので、データの価格は次のとおりです。

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

私は取得します:

  1. 2012年1月400
  2. 2012年2月600
  3. 2012年3月800

これまでのところ、QueryOverを使用してこれを実現する方法は見つかりませんでした。日付の月/年の部分を見ようとすると、「プロパティを解決できませんでした」というメッセージが表示され続けます。

それらの質問:

投稿を年ごと、次に月ごとにグループ化する

グループ/日付で並べ替え年/月、NHibernateによる部分選択(射影?変換?)

LINQを使用して回答を得ました-私が探しているものではありません。

何か案は?ありがとう

(NHibernate 3.2を使用)

4

1 に答える 1

2

グループ化はSQL式を使用して行う必要があるため、QueryOverは適切な選択ではありません。このタイプのクエリの場合、QueryOverは、価値を追加しない単なる無意味な抽象化です。

QueryOverを使用してそれを行う必要がある場合は、次のようにすることができます。

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