小白開學Asp.Net Core《二》(補)

小白開學Asp.Net Core《二》(補)git

                          ——數據倉儲層(Repositroy)、服務層(Service)github

---------------------------------------------------------------------------------------------------------數據庫

我胡漢三又回來了(距離上篇時間有點長),今天抽時間將最近對項目的優化寫下說明。app

一、Whypost

  讀了上篇文章的朋友們都知道我在項目中(Repository 層)引入了兩個經常使用的ORM,所以分別寫了各自的接口(只能說太幼稚),現將他們整合起來。  學習

二、Do優化

 A)、現將Repository調整以下:spa

  (圖一)3d

    他們之間的關係圖以下:code

    

    說明:

    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 層

    和上面同樣先上圖

    (圖二)

    相比較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實現中要注意的一點就是 以下圖所標紅的地方

     

     好了,今天就到這裏。下編再見。

C)、總結

  總結一句話,這篇文章是對上篇文章的補充,也是完全的放棄了之前的思路。

    歡迎你們提意見和建議,共同窗習!

 

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

  (本人堅信:學習是由淺到深的過程,先打基礎)

    不喜勿噴!謝謝!

  GitHub地址: https://github.com/AjuPrince/Aju.Carefree

相關文章
相關標籤/搜索