ASAformairuan 2019-03-24
Dapper是.NET的一款轻量级ORM工具(GitHub),也可称为简单对象映射器。在速度方面拥有微型ORM之王的称号。
它是半自动的,也就是说实体类和SQL语句都要自己写,但它提供自动对象映射。是通过对IDbConnection接口的扩展来操作数据库的。
优点:
下面简单创建一个Web API应用并通过Dapper访问MySQL数据。
创建Web API应用并添加NuGet引用
Install-Package MySql.Data
Install-Package Dapper
新建一个Product类
新建一个DBConfig类用于创建并返回数据库连接
创建简单的仓储接口和类
在Startup ConfigureServices方法里面配置依赖注入
在Controller里面调用仓储方法
事务
Dapper对多表映射的支持
Dapper Contrib扩展Dapper提供了CRUD的方法
Install-Package Dapper.Contrib
增加一个新的仓储类继承
services.AddTransient<IProductRepository, ContribProductRepository>();
类库提供的方法Dapper.SimpleCRUDGet GetList GetListPaged Insert Update Delete DeleteList RecordCountDapper PlusBulk Insert Bulk Delete Bulk Update Bulk Merge Bulk Action Async Bulk Also Action Bulk Then ActionDapper.FastCRUDGet Find Insert Update BulkUpdate Delete BulkDelete CountDapper.MapperMulti-mapping
仓储模式往往需要工作单元模式的介入来负责一系列仓储对象的持久化,确保数据完整性。网上关于工作单元模式的实现方式有多种,但其本质都是工作单元类通过创建一个所有仓储共享的数据库上下文对象,来组织多个仓储对象。
网上的一些实现方式:
优缺点不作讨论,适合自己的就是最好的,这里采用了另外一种实现方式:
后面省略了很多代码,有兴趣通过阅读原文到博客上去阅读。
原文地址: https://www.cnblogs.com/royzshare/p/9522127.html