Dapper封装实现仓储Repository

什么是仓储? 

仓储模式作为领域驱动设计(Domain-Driven Design,DDD)的一部分,在系统设计中的使用非常广泛。它主要用于解除业务逻辑层与数据访问层之间的耦合,使业务逻辑层在存储、访问数据库时无须关心数据的来源及存储方式,例如使用哪种类型的数据库,也无须关心对数据的操作,如数据库连接和命令等。所有这些直接对数据的操作均封装在具体的仓储实现中。

 前言:

本篇博客是主要介绍我封装个案例,如果想要学习对Dapper基本操作的话,请看其他博客!

    gitee源码地址: DapperRepository: Dapper封装仓储Repository

    封装的这个demo十分简化,方便入门,没有类库,直接用文件夹分类了。

    结构结构如下:

Dapper封装实现仓储Repository_第1张图片

一、配置数据库连接和Redis

Dapper封装实现仓储Repository_第2张图片

 二、封装仓储层

 IRepositoryBase定义了仓储的一些基本的增删查改的操作。就是通过泛型传递参数,忘记回去补

  T是要传过来的领域模型(实体类)

Dapper封装实现仓储Repository_第3张图片

 RepositoryBase  仓储实现 IRepositoryBase定义的方法。

Dapper封装实现仓储Repository_第4张图片

 

IUserRepository  这个接口顾名思义就是将要操作的领域模型(实体类)userinfo传递给IRepositoryBase,并基础这个接口,让UserRepository能使用仓储的方法,IUserRepository  这里可以写一些复杂的扩展方法。Dapper封装实现仓储Repository_第5张图片

 UserRepository 基础了RepositoryBase,和实现IuserRepository接口里面的扩展方法,这里一定要继承RepositoryBase方法,如果不继承的话,RepositoryBase

里面实现的仓储方法就没有一样了,在 UserRepository 还要重新实现。

Dapper封装实现仓储Repository_第6张图片

  •       然后就可以直接在Service里面使用仓储了。
  •       这里注意要将仓储的接口在依赖注入,要不然会报错。
  •             builder.Services.AddTransient();
  • 然后就可以使用仓储里面的方法了。 

Dapper封装实现仓储Repository_第7张图片

 

 总结:我这里案例是最基本的实现,方便初学者入门仓储,如果又不对的地方欢迎评论区交流。

 

你可能感兴趣的:(.net,c#,.netcore)