對比了幾個主流的ORM框架如SqlSuger Dapper SmartSql , 選擇Dapper 主要是個人習慣,平時寫sql比較多,感覺Dapper比較符合自己風格
首先安裝 Dapper
平時使用Mysql比較多,但是為了后續兼容SqlServer等其他數據庫,先建一個DbFactory,用來管理數據庫連接
當然,因為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還有其他的擴展,有興趣可以繼續研究一下。