欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

小白开学Asp.Net Core《二》(补)

程序员文章站 2022-03-06 21:36:58
小白开学Asp.Net Core《二》(补) ——数据仓储层(Repositroy)、服务层(Service) 我胡汉三又回来了(距离上篇时间有点长),今天抽时间将最近对项目的优化写下说明。 1、Why 读了上篇文章的朋友们都知道我在项目中(Repository 层)引入了两个常用的ORM,因此分别 ......

小白开学asp.net core《二》(补)

                          ——数据仓储层(repositroy)、服务层(service)

---------------------------------------------------------------------------------------------------------

我胡汉三又回来了(距离上篇时间有点长),今天抽时间将最近对项目的优化写下说明。

1、why

  读了上篇文章的朋友们都知道我在项目中(repository 层)引入了两个常用的orm,因此分别写了各自的接口(只能说太幼稚),现将他们整合起来。  

2、do

 a)、现将repository调整如下:

  小白开学Asp.Net Core《二》(补)(图一)

    他们之间的关系图如下:

    小白开学Asp.Net Core《二》(补)

    说明:

    a)、ibaserepository接口中定义了对数据库操作的常用操作,idapperrepository是基于dapper 的接口定义,isqlsugarrepository 是基于sqlsugar的接口定义。

    b)、genericdapperrepositroybase是对idapperrepository的实现,genericsqlsugarrepositorybase是对isqlsugarrepository的实现

    具体代码就不贴了直接到 github上 去看看,这里只是说下思路。

    说明了他们的关系后,再说下 图一 中的 repositroybase 类

    a)、先看代码   

 1 using aju.carefree.repositories.dapper;
 2 using aju.carefree.repositories.sqlsugar;
 3 namespace aju.carefree.repositories
 4 {
 5     public abstract class repositroybase<t, tkey> : genericsqlsugarrepositorybase<t, tkey> where t : class, new()
 6     {
 7         public repositroybase(string connname) : base(connname)
 8         {
 9         }
10     }
11 
12     //public abstract class repositroybase<t, tkey> : genericdapperrepositroybase<t, tkey> where t : class, new()
13     //{
14     //    public repositroybase(string connname) : base(connname)
15     //    {
16     //    }
17     //}
18 }

    b)、代码贴出来后,肯定都知道我要干啥了。其实这个类起到的作用就是我可以在不动server层与repostiroy层代码时,切换orm(爱用那个就用那个,两个都不喜欢用了可以沿用上面的思路自己扩展个)。

  b)、service 层

    和上面一样先上图

    小白开学Asp.Net Core《二》(补)(图二)

    相比较repository层,service层就简单多了,说白了我对该层理解就是 写 业务逻辑 的 。

    a)、那么我们来看看iservice接口   

1 using aju.carefree.common;
2 
3 namespace aju.carefree.iservices
4 {
5     public interface iservice<t, tkey> : idependency where t : class, new()
6     {
7 
8     }
9 }

    就是这么简单,这么简单为何要写呢?答案其实就是为了实现 ioc,其中idependency 其实就是为了autofac做的

    剩下的就是写业务逻辑了!!!这里就不在写了。其中在server实现中要注意的一点就是 如下图所标红的地方

    小白开学Asp.Net Core《二》(补) 

     好了,今天就到这里。下编再见。

c)、总结

  总结一句话,这篇文章是对上篇文章的补充,也是彻底的放弃了以前的思路。

    欢迎大家提意见和建议,共同学习!

 

--------------------------------------------------------------------------------------------------------------

  (本人坚信:学习是由浅到深的过程,先打基础)

    不喜勿喷!谢谢!

  github地址: https://github.com/ajuprince/aju.carefree

小白开学Asp.Net Core《二》(补)