小白开学Asp.Net Core《二》(补)
小白开学Asp.Net Core《二》(补)
——数据仓储层(Repositroy)、服务层(Service)
---------------------------------------------------------------------------------------------------------
我胡汉三又回来了(距离上篇时间有点长),今天抽时间将最近对项目的优化写下说明。
1、Why
读了上篇文章的朋友们都知道我在项目中(Repository 层)引入了两个常用的ORM,因此分别写了各自的接口(只能说太幼稚),现将他们整合起来。
2、Do
A)、现将Repository调整如下:
(图一)
他们之间的关系图如下:
说明:
a)、IBaseRepository接口中定义了对数据库操作的常用操作,IDapperRepository是基于Dapper 的接口定义,ISqlSugarRepository 是基于SqlSugar的接口定义。
b)、GenericDapperRepositroyBase是对IDapperRepository的实现,GenericSqlSugarRepositoryBase是对ISqlSugarRepository的实现
具体代码就不贴了直接到 GitHub上 去看看,这里只是说下思路。
说明了他们的关系后,再说下 图一 中的 RepositroyBase 类
a)、先看代码
using Aju.Carefree.Repositories.Dapper; using Aju.Carefree.Repositories.SqlSugar; namespace Aju.Carefree.Repositories { public abstract class RepositroyBase<T, TKey> : GenericSqlSugarRepositoryBase<T, TKey> where T : class, new() { public RepositroyBase(string connName) : base(connName) { } } //public abstract class RepositroyBase<T, TKey> : GenericDapperRepositroyBase<T, TKey> where T : class, new() //{ // public RepositroyBase(string connName) : base(connName) // { // } //} }
b)、代码贴出来后,肯定都知道我要干啥了。其实这个类起到的作用就是我可以在不动Server层与Repostiroy层代码时,切换ORM(爱用那个就用那个,两个都不喜欢用了可以沿用上面的思路自己扩展个)。
B)、Service 层
和上面一样先上图
(图二)
相比较Repository层,Service层就简单多了,说白了我对该层理解就是 写 业务逻辑 的 。
a)、那么我们来看看IService接口
using Aju.Carefree.Common; namespace Aju.Carefree.IServices { public interface IService<T, TKey> : IDependency where T : class, new() { } }
就是这么简单,这么简单为何要写呢?答案其实就是为了实现 IOC,其中IDependency 其实就是为了Autofac做的
剩下的就是写业务逻辑了!!!这里就不在写了。其中在Server实现中要注意的一点就是 如下图所标红的地方
好了,今天就到这里。下编再见。
C)、总结
总结一句话,这篇文章是对上篇文章的补充,也是彻底的放弃了以前的思路。
欢迎大家提意见和建议,共同学习!
--------------------------------------------------------------------------------------------------------------
(本人坚信:学习是由浅到深的过程,先打基础)
不喜勿喷!谢谢!
GitHub地址: https://github.com/AjuPrince/Aju.Carefree
- 小白开学Asp.Net Core 《四》
- 小白开学Asp.Net Core《三》
- ASP.NET Core 实战:Linux 小白的 .NET Core 部署之路
- ASP.NET Core中自定义路由约束的实现
- Elasticsearch,Kibana,Logstash,NLog实现ASP.NET Core 分布式日志系统
- 初探CSRF在ASP.NET Core中的处理方式
- [转]Writing Custom Middleware in ASP.NET Core 1.0
- ASP.NET Core API 版本控制
- [译]ASP.NET Core 2.0 网址重定向的方法
- ASP.NET Core Web APi获取原始请求内容
- ASP.NET Core 中文文档目录 - 学习
- [译]ASP.NET Core 2.0 路由引擎详解
- 详解ASP.Net Core 中如何借助CSRedis实现一个安全高效的分布式锁
- 详解ASP.NET Core 网站发布到Linux服务器
- 详解ASP.NET Core 2.0 视图引擎(译)
- ASP.NET Core 运行原理剖析1:初始化WebApp模版并运行
- [转]ASP.NET Core 1 Deploy to IIS
- ASP.NET Core MVC中的Controller
- 浅谈ASP.NET Core 2.0 布局页面(译)
- [转]asp.net core视图组件(ViewComponent)简单使用