天天看點

.net core 3.1 加入ORM架構(Dapper)

對比了幾個主流的ORM架構如SqlSuger Dapper SmartSql , 選擇Dapper 主要是個人習慣,平時寫sql比較多,感覺Dapper比較符合自己風格

首先安裝 Dapper

平時使用Mysql比較多,但是為了後續相容SqlServer等其他資料庫,先建一個DbFactory,用來管理資料庫連接配接

.net core 3.1 加入ORM架構(Dapper)

當然,因為DbFactory命名規則不一緻,要手動注入

在Startup.cs 檔案的ConfigureContainer 方法中加入一行代碼:

builder.RegisterType<DbFactory>().As<IDbFactory>();

DbOption 類定義連接配接資料庫參數

.net core 3.1 加入ORM架構(Dapper)
.net core 3.1 加入ORM架構(Dapper)

在Startup.cs檔案的ConfigureServices方法中注入:

services.Configure<DbOption>(Configuration.GetSection("DbOption"));

 實際資料庫相關參數記錄在appsettings.json檔案中

"DbOption": {

"ConnectionString": "server=127.0.0.1;database=leon;user=root;pwd=root;SslMode=none;",

"DbModel": "MySQL"

}

資料庫及相關表自行建立

 配置好基本工作,接下來就是調用方法(BaseService可以先忽略,下面會講到)

在構造函數中注入DbFactory,就可以調用了,Dapper的文法不了解的自行百度了

.net core 3.1 加入ORM架構(Dapper)
.net core 3.1 加入ORM架構(Dapper)

 至此,Dapper的配置調用已經完成了。

考慮到每個對象會有很多相同的操作,例如擷取清單,根據主鍵擷取資訊等,如果每次都手寫太麻煩,是以考慮引入Dapper 擴充

安裝 Dapper.SimpleCRUD

注:引入Dapper.SimpleCRUD時,在DbFactory.cs要加入下面一行代碼, 因為mysql語句不支援中括号,加上這個設定避免報錯

Dapper.SimpleCRUD.SetDialect(Dapper.SimpleCRUD.Dialect.MySQL);

建立公共類BaseService(接口就不展示了),通用方法可以網上百度

注入DbFactory,聲明DbConnection

.net core 3.1 加入ORM架構(Dapper)

 在UserService 中繼承BaseService,則可以繼承BaseService中所有通用方法

Dapper定義實體類要注意,假設主鍵不是Id,應加入[Key]關鍵字

.net core 3.1 加入ORM架構(Dapper)

控制器中就可以直接調用繼承baseService的方法

.net core 3.1 加入ORM架構(Dapper)
.net core 3.1 加入ORM架構(Dapper)

以上就是Dapper 的使用介紹,Dapper還有其他的擴充,有興趣可以繼續研究一下。