我被这个简单的数据问题困扰了.
我正在使用Entity框架并拥有一个产品数据库.我的结果页面返回这些产品的分页列表.现在我的结果按每个产品的销售数量排序,所以我的代码如下所示:
return Products.OrderByDescending(u => u.Sales.Count());
Run Code Online (Sandbox Code Playgroud)
这将返回我的实体的IQueryable数据集,按销售数量排序.
我希望我的结果页面显示每个产品的排名(在数据集中).我的结果应如下所示:
Page #1
1. Bananas
2. Apples
3. Coffee
Page #2
4. Cookies
5. Ice Cream
6. Lettuce
Run Code Online (Sandbox Code Playgroud)
我希望我只想在结果中使用SQL ROW_NUMBER变量添加一列...但我不知道如何将此列添加到我的结果数据表中.
我的结果页面确实包含一个foreach循环,但由于我使用的是分页集,我猜测使用该数字来伪造排名数字不是最好的方法.
所以我的问题是,在这种情况下,如何在查询结果中添加ROW_NUMBER列?
有谁知道如何编写LINQ to SQL语句来返回表中的每第n行?我需要在分页数据网格中的每个页面顶部获取项目的标题,以便快速扫描用户.所以,如果我想要第一条记录,那么之后的第三条记录,来自以下名称:
Amy,Eric,Jason,Joe,John,Josh,Maribel,Paul,Steve,Tom
我会得到艾米,乔,玛丽贝尔和汤姆.
我怀疑这可以做到...... LINQ to SQL语句已经结合排序和分页调用ROW_NUMBER()SQL函数.我只是不知道如何取回每一个项目.SQL语句就像WHERE ROW_NUMBER MOD 3 = 0,但我不知道用于获取正确SQL的LINQ语句.