什么是仓储? 

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

 前言:

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

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

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

    结构结构如下:

一、配置数据库连接和Redis

 二、封装仓储层

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

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

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

 

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

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

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

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

 

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

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐