FreeSql (十六)分頁查詢


static IFreeSql fsql = new FreeSql.FreeSqlBuilder()
    .UseConnectionString(FreeSql.DataType.MySql, "Data Source=127.0.0.1;Port=3306;User ID=root;Password=root;Initial Catalog=cccddd;Charset=utf8;SslMode=none;Max pool size=10")
    .Build(); //請務必定義成 Singleton 單例模式

class Topic {
    [Column(IsIdentity = true)]
    public int Id { get; set; }
    public string Title { get; set; }
    public int Clicks { get; set; }
    public DateTime CreateTime { get; set; }

    public int CategoryId { get; set; }
}

每頁20條數據,查詢第1頁

var list = fsql.Select<Topic>()
    .Where(a => a.Id > 10)
    .Count(out var total) //總記錄數量
    .Page(1, 20)
    .Tolist();

優化

SqlServer 2012 以前的版本,使用 row_number 分頁;

SqlServer 2012+ 版本,使用最新的 fetch next rows 分頁;

Take/Limit

返回前10條記錄:select.Take(10).ToList();

Offset/Skip

跳過前10條記錄,返回記錄:select.Offset(10).ToList();

API

方法 返回值 參數 描述
ToSql string 返回即將執行的SQL語句
ToList List 執行SQL查詢,返回 T1 實體所有字段的記錄,若存在導航屬性則一起查詢返回,記錄不存在時返回 Count 為 0 的列表
ToList<T> List<T> Lambda 執行SQL查詢,返回指定字段的記錄,記錄不存在時返回 Count 為 0 的列表
ToList<T> List<T> string field 執行SQL查詢,返回 field 指定字段的記錄,並以元組或基礎類型(int,string,long)接收,記錄不存在時返回 Count 為 0 的列表
【分頁】
Count long 查詢的記錄數量
Count <this> out long 查詢的記錄數量,以參數out形式返回
Skip <this> int offset 查詢向后偏移行數
Offset <this> int offset 查詢向后偏移行數
Limit <this> int limit 查詢多少條數據
Take <this> int limit 查詢多少條數據
Page <this> int pageIndex, int pageSize 分頁

系列文章導航


免責聲明!

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



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