c# - 如何将使用 ROW_NUMBER() 的查询转换为 linq?

标签 c# linq

我的表由三列组成(sno、name、age)。我正在使用额外的列(行号)从数据库中检索此表,我使用了以下代码:

select * from (
    select ROW_NUMBER() over (order by SNo asc)as rowindex,SNo,Name,Age 
    from tblExample) 
    as example where rowindex between ((pageindex*10)+1) and ((pageindex+1)*10)

请注意,pageindex 是一个变量,它接受用户传递的一些整数值。

我的数据库是 Sql Server 2008。我想使用 Linq 编写相同的查询。我该怎么做?

最佳答案

你可以像下面这样写查询

var index=1;
var pageIndex=1;
var pageSize = 10;
data.Select(x => new
{
    RowIndex = index++,
    Sno = x.Sno,
    Name = x.Name,
    Age = x.Age
}).OrderBy(x => x.Name)
.Skip(pageSize * (pageIndex - 1)).Take(pageSize).ToList();

关于c# - 如何将使用 ROW_NUMBER() 的查询转换为 linq?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17788400/

相关文章:

c# - 约束 X 和 Y 可拖动区域

C# SerialPort GetPortNames 在 Windows 10 上不起作用

c# - 如何使用 System.IO.Stream 和 LINQ 读取 XML 文件

c# - 在条件断点中使用 Linq 的 Visual Studio 2015

c# - 将数组中的字符串项添加到对象列表

c# - 使用 c# Func 作为 IQueryable 的一部分而不执行内存调用

C# 创建一个固定大小的哈希表

c# - 微软办公自动化 : Get notified (Event) when a macro runs

c# - 复杂的 Linq C# 查询

c# - Linq 选择新对象