對比了幾個主流的ORM架構如SqlSuger Dapper SmartSql , 選擇Dapper 主要是個人習慣,平時寫sql比較多,感覺Dapper比較符合自己風格
首先安裝 Dapper
平時使用Mysql比較多,但是為了後續相容SqlServer等其他資料庫,先建一個DbFactory,用來管理資料庫連接配接
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcuETO1MDN3cTN40SMykDMwQDN0ETOxMDMwIDMy0iN0YDNyIzLcNDMwIDMy8CX2QjN0IjMvwVY0VmYtk2Lc12bj5ycn9Gbi52YuAjMwIzZtl2Lc9CX6MHc0RHaiojIsJye.png)
當然,因為DbFactory命名規則不一緻,要手動注入
在Startup.cs 檔案的ConfigureContainer 方法中加入一行代碼:
builder.RegisterType<DbFactory>().As<IDbFactory>();
DbOption 類定義連接配接資料庫參數
在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的文法不了解的自行百度了
至此,Dapper的配置調用已經完成了。
考慮到每個對象會有很多相同的操作,例如擷取清單,根據主鍵擷取資訊等,如果每次都手寫太麻煩,是以考慮引入Dapper 擴充
安裝 Dapper.SimpleCRUD
注:引入Dapper.SimpleCRUD時,在DbFactory.cs要加入下面一行代碼, 因為mysql語句不支援中括号,加上這個設定避免報錯
Dapper.SimpleCRUD.SetDialect(Dapper.SimpleCRUD.Dialect.MySQL);
建立公共類BaseService(接口就不展示了),通用方法可以網上百度
注入DbFactory,聲明DbConnection
在UserService 中繼承BaseService,則可以繼承BaseService中所有通用方法
Dapper定義實體類要注意,假設主鍵不是Id,應加入[Key]關鍵字
控制器中就可以直接調用繼承baseService的方法
以上就是Dapper 的使用介紹,Dapper還有其他的擴充,有興趣可以繼續研究一下。