廢話不數,直入主題,linq下怎麼進行分頁
很多學習linq的朋友肯定有自己所不同的方法,考慮這個問題我所想到的是
用take(),skip(),takewhile(),skipuntil()中的方法來實現
首先看take()是否可用
take方法的作用是從結果中取固定數量的值,
mydbdatacontext mydb=new mydbdatacontext("server=.;database=mydb");
var query=from p in mydb.products
orderby p.id descending
select p;//取出products中所用的項按降序排列
如果直接用take()
var q=query.take(n) 這樣只能取出前條n記錄,但是還是讓我們看到了分頁的曙光,還是還有個skip嗎,skip可以取出除去滿足條件的剩下的記錄。如果我們要把資料以每頁pagesize的數量來進行分頁,很簡單,很skip(pagersize*pagenum)然後在剩下的記錄中take(pagesize)不就得到了想要的資料了麼。
varq=query.skip(pagesize*pagenum).take(pagesize) 就這麼簡單。
希望朋友們提供更好的方法來進行分頁,同時對這個方法的優劣性,進行批評指導
附上執行時生成的sql(感謝:紫色陰影
、boler guo
)sql server2000:
select top 20 [t0].[customerid], [t0].[companyname], [t0].[contactname], [t0].[contacttitle], [t0].[address], [t0].[city], [t0].[region], [t0].[postalcode], [t0].[country], [t0].[phone], [t0].[fax]
from [dbo].[customers] as [t0]
where not (exists(
select null as [empty]
from (
select top 10 [t1].[customerid]
from [dbo].[customers] as [t1]
) as [t2]
where [t0].[customerid] = [t2].[customerid]
)) sql server 2005
select top 10 [t1].[customerid], [t1].[companyname], [t1].[contactname], [t1].[contacttitle], [t1].[address], [t1].[city], [t1].[region], [t1].[postalcode], [t1].[country], [t1].[phone], [t1].[fax]
from (
select row_number() over (order by [t0].[contactname]) as [row_number], [t0].[customerid], [t0].[companyname], [t0].[contactname], [t0].[contacttitle], [t0].[address], [t0].[city], [t0].[region], [t0].[postalcode], [t0].[country], [t0].[phone], [t0].[fax]
from [dbo].[customers] as [t0]
) as [t1]
where [t1].[row_number] > @p0
order by [t1].[contactname]
-- @p0: input int32 (size = 0; prec = 0; scale = 0) [50]
-- context: sqlprovider(sql2005) model: attributedmetamodel build: 3.5.20***.x
Linq 的分頁討論
很多學習linq的朋友肯定有自己所不同的方法,考慮這個問題我所想到的是 用take skip takewhile skipuntil 中的方法來實現 首先看take 是否可用 take方法的作用是從結果中取固定數量的值,mydbdatacontext mydb new mydbdatacontext...
linq高階查與分頁
前台 page language c autoeventwireup true codefile linq資料顯示.aspx.cs inherits linq資料顯示 css body xuanze table head mian td 後台 using system using system.co...
對於mongodb實現分頁的討論
對於mongodb實現分頁的討論 group缺點 www.2cto.com 1.group語句在sharded?模式下無法使用 2.group?要求返回的結果集 10000 3.group 沒有limit 和 skip 限制操作.4.分頁場景下,每點乙個分頁鏈結都會觸發一次聚合操作 優點 1.小結果...