(整理)EF分頁的實現


          最近做一個小功能,需要數據分頁,因為小框架使用的是EF,因此查詢了一下EF的分頁。

          EF分頁主要用到了skip和take兩個方法:

                   GetListBy(lamda xxxxx).skip(PageSize *PageIndex).take(PageSize)

                   PageSize是每頁的大小、PageIndex是當前的頁數

       1)添加內容,調整界面

  •   界面上增加按鈕:增加上一頁、下一頁等按鈕,供用戶使用
  •   增加變量保存:增加當前頁、數據總量等數據

       2)增加ADO.NET查詢

               本想直接使用EF的count來獲取數量,結果是慢的慘不忍睹,然后用ADO.NET直接查數量,這樣不會造成延遲。

       3)用EF查詢數據

              當查詢出數量,接着用EF將第一頁數據獲取上來(注意,步驟2和3查詢條件需要一致,否則出錯)

       4)上一頁和下一頁

              另起一個方法,直接用EF的條件來獲取下一頁或上一頁,然后根據下面進行按鈕控制。

     代碼就不貼了,參考資料附一下:

       https://www.cnblogs.com/M-LittleBird/p/5852395.html

       https://blog.csdn.net/augus3344/article/details/45378877

  

  •              根據頁數據量和總量的對比,判斷當前頁是否最后一頁
  •               根據頁碼來判斷當前頁有無上一頁

       經簡單測試,幾十萬條數據完成沒問題。

       5)導出的問題

                 分頁的數據比較零碎,不能作為導出的數據來源,導出使用相同條件的ADO.NET進行重新查詢,然后導出(注意,此處是查數據,步驟2僅僅查詢數量)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM