asp.net core使用Dapper操作Sqlserver/Oracle
無廢話,還是先上git地址:https://gitee.com/jimmyTown_admin_admin/DapperInCoreDemo.git
結構如下:
1. 在framework時代,Dapper就因其小、輕但易用,高效而被很多程序員大量用與實際開發中。相對EF的寵大,我也更喜歡使用Dapper,今天正好有空,就順手寫了對應的Deamo(Demo分2部分,一部分是.net core console,一部分是asp.net core)。
開發環境:VS2017 .net core 2.1.3 IIS7.
2. 結構說明:
DapperInCoreLib中引用Dapper
Oracle.ManagedDataAccess.Core
引用OK後,根據Dapper的封裝定義對應的通用接口
主要是針對dapper本身的實現作一些CURD的封裝
1.2 接著就是針對接口的作對應的實現,這裏會考慮兼容Sqlserver/oracle或其他DB(目前只是實現了這2種,但其實還支持mysql/sqlite等)
故實現的時候會根據對應的連接字符串及連接類型而使用對應的連接驅動
例如:其中查詢的時候就會直接使用IDbConection作為連接,其他部分同理
1.3 DapperFactory
這裏主要有2塊
第一部分實現單例:所有連接的獲取的入口點
第二部分:獲取操作接口
1。4 簡易倉儲實現
接口部分(略,請直接看代碼),實現部分:
接著看第2部分:對應的WebApi部分(主要1. 註入 2.Swagger, 3.log4net)
引入Swashbuckle.AspNetCore及log4net
2.1 配置IOC註入及swagger
2.2 配置log4net
當然日誌也可以不使用Log4net而使用Microsoft.Extensions.Logging下的ILoggerFactory
運行看看效果(我這裏將lauchSetting.json中的開始url變更為"launchUrl": "api/student"
默認顯示所有學生信息,我們可以到swagger頁面
這裏就不一一嘗試了,大家可以下載代碼嘗試
asp.net core使用Dapper操作Sqlserver/Oracle