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 | ページング |