3

Ado.Net Entity フレームワークを使用して、テーブルに表示される回数に基づいて、テーブル内の「上位 3」項目を取得しようとしています。

例えば:

テーブル:basket_to_product_id | バスケット ID | 製品番号

product_id が何回出現するかを知りたいのですが、最も頻繁に出現する上位 3 つの product_id を返したいと考えています。

私は立ち往生しています:

List<BasketToProduct> btplist = entities.BasketToProduct. ..........?
4

3 に答える 3

1

このようなものが機能するはずです(もちろん、プロパティの実際の名前はわかりません):

IEnumerable<int> top3ProductIds = (from btp in entities.BasketToProduct
                                   group btp by btp.ProductId into g
                                   orderby g.Count() descending
                                   select g.Key).Take(3);
于 2010-07-26T11:14:56.363 に答える
0

これを試して:

var query = entities.BasketToProduct
                         .GroupBy(btp => btp.ProductID)
                         .Select(g => ProductID = g.Key, Count = g.Count())
                         .OrderBy(g => g.Count)
                         .Take(3);

上位 3 つとProductIDsそれに関連するカウントが表示されます。

于 2010-07-26T11:15:13.403 に答える
0

テーブルで LINQ クエリを使用してみることができます。

于 2010-07-26T11:09:03.660 に答える