0

このクエリは、データベースから上位 25 のベストセラーを顧客別に返します。

var query =  from bs in db.MYDATABASE
             where bs.COMPANY == "MY COMPANY"
             group bs by bs.PRODCODE into g
             orderby g.Sum(x => x.MQTY) descending
             select new BestSeller
             {
                 product_code = g.Key,
                 product_description = g.First().DESCRIPTION,
                 total_quantity = g.Sum(x => x.MQTY) 
             };
var top25 = query.Take(25);

この質問で、次の行で次の LINQ クエリのプロジェクションを作成する必要があると言われました。

total_quantity = g.Sum(x => x.MQTY)

誰かが投影とその例が何を意味するのか説明してもらえますか?

4

1 に答える 1

0

プロジェクションは、クエリからいくつかのフィールドを選択し、それを作成/新しい型に投影するときに、LINQ に関して使用される用語です。クエリを実行しているときselect newは、実際に投影を実行しています。あなたの場合、クエリ式からg.Keyやのようなフィールドを選択し、 type の新しいオブジェクトを作成しています。g.First().DESCRIPTIONBestSeller

元の質問total_quantityにはフィールドが何にも割り当てられていなかったため、Jon Skeet は合計をプロジェクションに追加するように依頼しました。

プロジェクションに関する MSDN の次の記事を参照する必要があります。

射影の定式化
クエリ式の構文例: 射影

于 2012-09-04T07:17:37.767 に答える