使用Lambda表达式
//创建上下文
DataModelContainer dbContext = new DataModelContainer();
//每页5条数据,取第3页的数据
var data = dbContext.UserInfo
.Where(u => u.Id > 1)
.OrderBy(u => u.Id)
.Skip(5 * (3 - 1))//跳过多少条,跳过10,相当于取第3页的数据
.Take(5);//取5条数据
foreach (var item in data)
{
Console.WriteLine(item.Id + " " + item.Name);
}
使用Linq表达式
var data2 = (from u in dbContext.UserInfo
where u.Id > 0
orderby u.Id ascending
select u).Skip(5 * (3 - 1)).Take(5);
看看生成的sql脚本
SELECT
[Extent1].[Id] AS [Id],
[Extent1].[Name] AS [Name]
FROM [dbo].[UserInfo] AS [Extent1]
WHERE [Extent1].[Id] > 1
ORDER BY row_number() OVER (ORDER BY [Extent1].[Id] ASC)
OFFSET 10 ROWS FETCH NEXT 5 ROWS ONLY