我需要使用 Linq to Entities 获取前 10 名记录。
我需要将返回的结果绑定到GridView
如下“
Product Name | Product Description | Number of Items Sold
Item 1 | Item 1 Description | 24
如上所述,物品需要按顺序存放,从售出的最多物品开始。
我已经尝试了几个例子,比如this,this,并按照这里的例子。
以下是我迄今为止尝试过的:
public IQueryable GetTopTenProducts(DateTime startDate, DateTime endDate)
{
return
(from p in this.Entities.Product
join pro in this.Entities.ProductOrder on p.ID equals pro.ProductID
join o in this.Entities.Order on pro.OrderID equals o.ID
where o.DateOfOrder >= startDate && o.DateOfOrder <= endDate
select new
{
Product = p,
Quantity = pro.Qty,
ProductName = p.Name,
ProductDescription = p.Description
} into productQty
group productQty by productQty.Product into pg
let totalQuantity = pg.Sum(prod => prod.Quantity)
orderby totalQuantity descending
select pg.Key).Take(10);
}
这将返回整个产品表,但我只需要检索上面粘贴的详细信息。
有任何想法吗?