FreeSql拡張パッケージDapperの使用習慣を実現

2079 ワード

概要
FreeSql.Connection.Extensions FreeSqlから派生した拡張パッケージ(Mysql/postgresql/sqlserver/Oracle/SQLite)データベース接続オブジェクト拡張方法を実装し、Dapperのような使用習慣(QQ群:4336577).
クイックハンド
dotnet add package FreeSql.Connection.Extensions
エンティティクラスのテスト
class TestConnectionExt {
    public Guid id { get; set; }
    public string title { get; set; }
    public DateTime createTime { get; set; } = DateTime.Now;
}

検索
FreeSqlと同じクエリー方法です.
using (var conn = new MySqlConnection(_connectString)) {
    var list = conn.Select().Where(a => a.id == item.id).ToList();
}

挿入
FreeSqlと同様の挿入方法です.
using (var conn = new MySqlConnection(_connectString)) {
    var item = new TestConnectionExt { title = "testinsert" };
    var affrows = conn.Insert().AppendData(item).ExecuteAffrows();
}

更新
FreeSqlと同じ更新方法です.
using (var conn = new MySqlConnection(_connectString)) {
    var affrows = conn.Update()
        .Where(a => a.Id == xxx)
        .Set(a => a.title, "testupdated")
        .ExecuteAffrows();
}

削除
FreeSqlと同様の削除方法です.
using (var conn = new MySqlConnection(_connectString)) {
    var affrows = conn.Delete()
        .Where(a => a.Id == xxx)
        .ExecuteAffrows();
}

取引
まるでado.Netのように使えばいいです.トランザクションのオープン、コミット、ロールバックを自分で制御します.
接続ステータス
conn接続オブジェクトが開いていない場合、内部使用時にOpenを開き、使用後Close;
conn接続オブジェクトが開いている場合は、内部でOpenを繰り返しず、使用後もCloseしません.
更新ログ
  • データベースオブジェクトを追加する.Selectメソッド
  • データベースオブジェクトを追加する.Updateメソッド;
  • データベースオブジェクトを追加する.Insertメソッド;
  • データベースオブジェクトを追加する.Deleteメソッド
  • データベースオブジェクトを追加する.QueryはSQL文のクエリ方法を実行します.

  • 締めくくり
    このプロジェクトは研究の目的に属し、その後のFreeSqlである.Appを敷き詰めます.簡単に言えばFreeSql.Abpとは何か、それがあればAbpプロジェクトでFreeSqlを使うことができます.
    gayhub: https://github.com/2881099/FreeSql
    やるNETCoreで一番便利なORM!ようこそ!