我被这个简单的数据问题所困扰。
我正在使用Entity框架并拥有产品数据库。我的结果页面返回这些产品的分页列表。现在我的结果按每个产品的销售数量排序,所以我的代码如下所示:
return Products.OrderByDescending(u => u.Sales.Count());
这将返回我的实体的IQueryable数据集,按销售数量排序。
我希望我的结果页面显示每个产品的排名(在数据集中)。我的结果应该是这样的:
Page #1 1. Bananas 2. Apples 3. Coffee Page #2 4. Cookies 5. Ice Cream 6. Lettuce
我期望我只想使用sql ROW_NUMBER变量在我的结果中添加一列…但是我不知道如何将此列添加到我的结果数据表中。
解决方法
使用
indexed overload of Select:
var start = page * rowsPerPage; Products.OrderByDescending(u => u.Sales.Count()) .Skip(start) .Take(rowsPerPage) .AsEnumerable() .Select((u,index) => new { Product = u,Index = index + start });