????????????????е????? rownum????1??????????1?????????е??????1????????1????????Ρ? ???????????μ???????????и????rownum?в????????????where????У?????????????ROW_NUMBER()?????where?????????????????????÷???????????
SELECT  ROW_NUMBER() OVER ( ORDER BY dbo.Products.ProductID DESC ) AS rownum ??
*
FROM    dbo.Products
WHERE rownum BETWEEN 1 AND 10
?????????
Invalid column name 'rownum'.
SELECT  ROW_NUMBER() OVER ( ORDER BY dbo.Products.ProductID DESC ) AS rownum ??
*
FROM    dbo.Products
WHERE ( ROW_NUMBER() OVER (ORDER BY City) AS rown ) BETWEEN 1 AND 10
?????????
Incorrect syntax near the keyword 'AS'.
??????????????????????????????????????????????????????
SELECT  *
FROM    ( SELECT    ROW_NUMBER() OVER ( ORDER BY dbo.Products.ProductID DESC ) AS rownum ??
*
FROM      dbo.Products
) AS temp
WHERE   temp.rownum BETWEEN 1 AND 10
?????????????????????????ROW_NUMBER????????????????????
SELECT  *
FROM    ( SELECT TOP ( @pageSize * @pageIndex )
ROW_NUMBER() OVER ( ORDER BY dbo.Products.UnitPrice DESC ) AS rownum ??
*
FROM      dbo.Products
) AS temp
WHERE   temp.rownum > ( @pageSize * ( @pageIndex - 1 ) )
ORDER BY temp.UnitPrice
???????????????????????????????????????????ROW_NUMER???????б??? ??????????????rownum??????????????ɡ?????????????
????????????????CTE???? (common_table_expression????????????????CTE????????? ?????ν??????????????????????????SQL??д??飬 ???)????ú???????????????CTE ???棬???£?
WITH    ProductEntity
AS ( SELECT TOP ( @pageSize * @pageIndex )
ROW_NUMBER() OVER ( ORDER BY dbo.Products.UnitPrice DESC ) AS rownum ??
*
FROM     dbo.Products
)
SELECT  *
FROM    ProductEntity
WHERE   ProductEntity.rownum > ( @pageSize * ( @pageIndex - 1 ) )
ORDER BY ProductEntity.UnitPrice
??????????????????????????????Щ????£? ???CTE?????????????????и????Ч??????磬???????????CTE???洢?к????????????????Σ???????????????join????????£?
WITH    ProductEntity
AS ( SELECT TOP ( @pageSize * @pageIndex )
ROW_NUMBER() OVER ( ORDER BY dbo.Products.UnitPrice DESC ) AS rownum ??
ProductID ??--??????
UnitPrice--?????????
FROM     dbo.Products
)
SELECT  *
FROM    ProductEntity
INNER JOIN dbo.Products ON dbo.Products.ProductID = ProductEntity.ProductID
WHERE   ProductEntity.rownum > ( @pageSize * ( @pageIndex - 1 ) )
ORDER BY ProductEntity.UnitPrice
???????ROW_NUMBER?????з?????????ú?????????? ?????????????LINQ?п???????TAKE ?? SKIP??????????????????????SQL???LINQ?????????????????????SQL???????????????????ROW_NUMBER???????????????????????????Console???????????????????LINQ To SQL??????÷?????????????£?
List<Product> product;
int pageSize = 10;
int pageIndex = 8;
using (ProductsDataContext context = new ProductsDataContext())
{
product = context.Products.OrderByDescending(x => x.UnitPrice)//????
.Skip(pageSize * (pageIndex-1))//??????????
.Take(pageSize)//?????????
.ToList();
}
????????????????????
???????????LINQ??????C#?????????????SQL????????SQLServer Profile ??????????????????????SQLServer??????

????Translate LINQ to SQL
??????????????俽???????????????
EXEC sp_executesql N'SELECT [t1].[ProductID]?? [t1].[ProductName]?? [t1].[SupplierID]?? [t1].[CategoryID]?? [t1].[QuantityPerUnit]?? [t1].[UnitPrice]?? [t1].[UnitsInStock]?? [t1].[UnitsOnOrder]?? [t1].[ReorderLevel]?? [t1].[Discontinued]
FROM (
SELECT ROW_NUMBER() OVER (ORDER BY [t0].[UnitPrice] DESC) AS [ROW_NUMBER]?? [t0].[ProductID]?? [t0].[ProductName]?? [t0].[SupplierID]?? [t0].[CategoryID]?? [t0].[QuantityPerUnit]?? [t0].[UnitPrice]?? [t0].[UnitsInStock]?? [t0].[UnitsOnOrder]?? [t0].[ReorderLevel]?? [t0].[Discontinued]
FROM [dbo].[Products] AS [t0]
) AS [t1]
WHERE [t1].[ROW_NUMBER] BETWEEN @p0 + 1 AND @p0 + @p1
ORDER BY [t1].[ROW_NUMBER]'?? N'@p0 int??@p1 int'?? @p0 = 70?? @p1 = 10
??????????????????д?????ROW_NUMBER ???????????????????????SKIP??TAKE??LINQ????????????????????