1. Take
var expr = context.Products .Take(10);
var expr = (from p in context.Products select p) .Take(10);
SELECT TOP (10) [c].[ProductID] AS [ProductID], [c].[CategoryID] AS [CategoryID], [c].[ProductName] AS [ProductName], [c].[UnitPrice] AS [UnitPrice], [c].[UnitsInStock] AS [UnitsInStock], [c].[Discontinued] AS [Discontinued] FROM [dbo].[Product] AS [c]
2. Skip
在使用Skip方法之前,需要先有OrderBy排序。
var expr = context.Products .Select(p => new { p.ProductID, p.ProductName }) .OrderBy(p => p.ProductID) .Skip(10);
SELECT [Extent1].[ProductID] AS [ProductID], [Extent1].[ProductName] AS [ProductName] FROM ( SELECT [Extent1].[ProductID] AS [ProductID], [Extent1].[ProductName] AS [ProductName], row_number() OVER (ORDER BY [Extent1].[ProductID] ASC) AS [row_number] FROM [dbo].[Product] AS [Extent1] ) AS [Extent1] WHERE [Extent1].[row_number] > 10 ORDER BY [Extent1].[ProductID] ASC
3. 分页查询Take/Skip
var expr = context.Products .Select(p => new { p.ProductID, p.ProductName }) .OrderBy(p => p.ProductID) .Skip(10) .Take(10);
SELECT TOP (10) [Extent1].[ProductID] AS [ProductID], [Extent1].[ProductName] AS [ProductName] FROM ( SELECT [Extent1].[ProductID] AS [ProductID], [Extent1].[ProductName] AS [ProductName], row_number() OVER (ORDER BY [Extent1].[ProductID] ASC) AS [row_number] FROM [dbo].[Product] AS [Extent1] ) AS [Extent1] WHERE [Extent1].[row_number] > 10 ORDER BY [Extent1].[ProductID] ASC
本文介绍了如何使用LINQ进行数据库的分页查询操作,包括Take和Skip方法的应用,并提供了具体的C#代码示例和对应的SQL语句转换,帮助读者理解如何在实际项目中实现高效的数据分页。

3612

被折叠的 条评论
为什么被折叠?



