使用 Ado.Net Entity 框架,我试图根据它们在表中出现的次数来获取表中的“前 3”项。
例如:
表:basket_to_product_id | 篮子ID | product_id
我想看看 product_id 出现了多少次,并想返回最频繁出现的前 3 个 product_id。
我被困在:
List<BasketToProduct> btplist = entities.BasketToProduct. ..........?
使用 Ado.Net Entity 框架,我试图根据它们在表中出现的次数来获取表中的“前 3”项。
例如:
表:basket_to_product_id | 篮子ID | product_id
我想看看 product_id 出现了多少次,并想返回最频繁出现的前 3 个 product_id。
我被困在:
List<BasketToProduct> btplist = entities.BasketToProduct. ..........?
像这样的东西应该可以工作(当然我不知道你的属性的实际名称):
IEnumerable<int> top3ProductIds = (from btp in entities.BasketToProduct
group btp by btp.ProductId into g
orderby g.Count() descending
select g.Key).Take(3);
您可以尝试对表使用 LINQ 查询。
试试这个:
var query = entities.BasketToProduct
.GroupBy(btp => btp.ProductID)
.Select(g => ProductID = g.Key, Count = g.Count())
.OrderBy(g => g.Count)
.Take(3);
它将为您提供前三名ProductIDs
及其相关计数。