.net core 3.1 webapi項目實現讀寫分離之二

書接上回,搞定讀寫分離的配置僅僅是第一步,後面的纔是重頭戲。

1、項目組織

項目的組織採用三層架構:框架層/模型層、業務層、WebApi表現層。

  • 框架層dll包含了各類輔助類, 中間件等應該是最底層的架構庫;EF 模型層也放在底層,但有獨立的的類庫構成包含dbcontext,主要由工具自動化生成)。
  • 業務層放在中間,其引用來自EF的Model層類庫,由DTO類、業務Service、Automapper映射,以及錯誤定義等類構成。
  • WebApi表現層,主要附帶部分驗證邏輯,調用業務層的接口實現對外的api服務。

2、DbContextFactory

讀寫分離的核心類就是DbContextFactory,該類在生命週期內管理所有由其產生的DbContext包裝類,其根據指定的參數,返回主庫DbContext或從庫DbContext包裝類,並存放在一個詞典裏,在生命完結時釋放這些DbContext。由於是DbContext一級進行管理的,其與微軟的DbContextFactory相比,則不夠輕量和智能。然而在提供主從庫DbContext上,又比較自由靈活。

/// <summary>
    /// EF數據上下文工廠對象,可以指定ConnectionString構造DBContext
    /// </summary>
    public class Core
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章