4

次のような年齢層ごとに集計されたデータが必要です。

 Age    |   Members
 ------------------
 0-13   |   150
 14-19  |   250
 20-30  |   400

私のlinqクエリでは、EntityFunctions.DiffYearsを使用して生年月日に基づいて年齢を取得しています:

let age = EntityFunctions.DiffYears(contact.Birthday, today)

ただし、年齢フィールドでグループ化すると、範囲ではなく 19,20,21... になります。これをlinqとエンティティフレームワークで達成するための推奨される方法は何ですか?

4

1 に答える 1

4

これには 2 つの方法があります。

クライアントでグループ化を処理する

最初に説明したように年齢ごとにグループ化し、結果のオブジェクトにlinqを使用して年齢を年齢範囲にマップし、次に年齢範囲ごとにグループ化します。Linq を使用した可変整数範囲によるグループ化を参照してください

サーバー上でグループ化を処理する

年齢を年齢範囲にマップするストア プロシージャを定義し (たとえば、0 ~ 13 歳の場合は 0、14 ~ 19 歳の場合は 1 を返すなど)、クエリでこのストア プロシージャを使用します。

于 2012-09-24T22:09:00.407 に答える