1. 程式人生 > >C#實踐問題:如何實現後臺分頁?

C#實踐問題:如何實現後臺分頁?

前端分頁:

前端分頁一般用於資料量較小的情況,一次請求把資料全部從後端請求回來

 

後端分頁:

後端分頁適用於資料量偏大時的情況,減小請求傳輸壓力。前端需要將每頁條數和當前頁傳給後端,後端根據條件查詢出資料再傳給前端,包括總條數、當前頁、每頁多少條資料等。

 

後端分頁主要依靠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頁的資料。請注意,此方法僅適用於按唯一鍵排序的情況。