C#實踐問題:如何實現後臺分頁?
阿新 • • 發佈:2018-11-12
前端分頁:
前端分頁一般用於資料量較小的情況,一次請求把資料全部從後端請求回來
後端分頁:
後端分頁適用於資料量偏大時的情況,減小請求傳輸壓力。前端需要將每頁條數和當前頁傳給後端,後端根據條件查詢出資料再傳給前端,包括總條數、當前頁、每頁多少條資料等。
後端分頁主要依靠Linq to sql語句 :take和skip,因為用這兩個語句就可以實現基本的分頁功能。
Take
說明:獲取集合的前n個元素;延遲。即只返回限定數量的結果集。
var q = ( from e in db.Employees orderby e.HireDate select e) .Take(5);
語句描述:選擇所僱用的前5個僱員。
Skip
說明:跳過集合的前n個元素;延遲。即我們跳過給定的數目返回後面的結果集。
var q = (
from p in db.Products
orderby p.UnitPrice descending
select p)
.Skip(10);
語句描述:選擇10種最貴產品之外的所有產品。
Paging(分頁)操作
適用場景:結合Skip和Take就可實現對資料分頁操作。
1.索引
var q = ( from c in db.Customers orderby c.ContactName select c) .Skip(50) .Take(10);
語句描述:使用Skip和Take運算子進行分頁,跳過前50條記錄,然後返回接下來10條記錄,因此提供顯示Products表第6頁的資料。
2.按唯一鍵排序
var q = (
from p in db.Products
where p.ProductID > 50
orderby p.ProductID
select p)
.Take(10);
語句描述:使用Where子句和Take運算子進行分頁,首先篩選得到僅50 (第5頁最後一個ProductID)以上的ProductID,然後按ProductID排序,最後取前10個結果,因此提供Products表第6頁的資料。請注意,此方法僅適用於按唯一鍵排序的情況。