FreeSql(XVI)ページングクエリ

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")
    .UseAutoSyncStructure(true) //自动同步实体结构到数据库
    .Build();

[Table(Name = "tb_topic")]
class Topic {
    [Column(IsIdentity = true, IsPrimary = true)]
    public int Id { get; set; }
    public int Clicks { get; set; }
    public int TestTypeInfoGuid { get; set; }
    public string Title { get; set; }
    public DateTime CreateTime { get; set; }
}

ISelect<Topic> select => fsql.Select<Topic>();

ページ20のデータ、1ページのクエリ

var sql = select.Page(1, 20).ToSql();
///SELECT a.`Id`, a.`Clicks`, a.`TestTypeInfoGuid`, a.`Title`, a.`CreateTime` 
//FROM `tb_topic` a 
//LIMIT 0,20

最適化

SqlServerの以前のバージョン2012、ROW_NUMBERのページングを使用しました。

SQLServer 2012+バージョン、ページング最新のフェッチ次の行を使用します。

テイク/リミット

返す前に10のレコード:select.Take(10).ToList();

/スキップオフセット

)(select.Offset(10).ToList; 10記録前には、レコードを返すスキップ

API

方法 返却値 パラメータ 説明
ToSql 実行するSQL文を返します。
ToListメソッド リスト SQLクエリを実行し、ナビゲーション属性は、クエリが返すリターンをカウントして存在する場合、レコードT1エンティティのすべてのフィールドを返す、のレコードがない場合、リスト0
ToListメソッド<T> リスト<T> ラムダ SQLクエリを実行し、指定されたレコードのフィールドを返し、レコードが0のリストを表示するために存在しない場合に返されるカウント
ToListメソッド<T> リスト<T> 文字列フィールド SQLクエリを実行すると、不在がリスト0を返されるカウント記録し、指定したフィールド記録フィールド、およびタプルまたはベースタイプ(整数、文字列、長い)の受信を返します。
[ページ]
カウント 長いです クエリのレコード数
カウント <この> アウト長いです レコードの数は、クエリは、フォームからのパラメータを返します。
スキップ <この> int型オフセット クエリが戻って行をオフセット
オフセット <この> int型オフセット クエリが戻って行をオフセット
限定 <この> int型の制限 どのように多くのデータクエリ
取る <この> int型の制限 どのように多くのデータクエリ
ページ <この> int型pageIndexパラメータ、int型のpageSize ページング

おすすめ

転載: www.cnblogs.com/FreeSql/p/11531341.html