ABP框架(asp.net core 2.X+Vue)模板項目學習之路(二)--切換MySql數據庫


  前言:

  大家好,今天給大家帶來ABP第二篇的分享,在寫這篇分享的時候非常的困難,因為發現ABP的框架越是深入、難度也就越大,而且深刻感覺到自己領域驅動開發知識的欠缺,前段時間買了兩本有關於領域驅動知識的數據,一本是領域驅動之父Eric Evans寫的《領域驅動設計》、一本是Vaughn Vernon寫的《實現領域驅動設計》,就目前而言,看了並沒有幾張,再次默默的自我檢討3分鍾,下面回歸正文:

  在ABP系統框架中,后台代碼分為了幾層,以下是層級的注釋:

  1. MyABPProject.Application:應用服務層,包含各個應用的邏輯
  2. MyABPProject.Core:項目的核心層,在領域驅動分層中,應該屬於領域層
  3. MyABPProject.EntityFrameworkCore:基於EntityFrameworkCore的封裝,連接數據庫,屬於倉儲基礎設施層
  4. MyABPProject.Migrator:數據庫遷移工具
  5. MyABPProject.Web.Core:項目的展現層,封裝展現層所用到的工具
  6. MyABPProject.Web.Host:項目的動態API接口以及Swagger

  今天主要是寫下數據庫切換的問題,一開始,項目剛剛下載下來的時候,默認使用的是SqlServer數據庫,按照上一篇的文章寫的那樣,數據庫還原->運行項目,順風順水可以將項目運行起來,因為現在項目的變化,需要更改數據庫,將由MySql代替SqlServer,故此分為了以下的幾個步驟:

  1. 首先刪除MyABPProject.EntityFrameworkCore項目下關於SqlServer的一些引用類庫,需要刪除的類庫如下:
    • Microsoft.EntityFrameworkCore.SqlServer
    • Microsoft.EntityFrameworkCore.Design
  2. 添加MySql的引用類庫,MySql需引用類庫如下:
    • Pomelo.EntityFrameworkCore.MySql.Design
    • Pomelo.EntityFrameworkCore.MySql
  3. 注釋MyABPProject.Web.Host和MyABPProject.Migrator項目中的“appsettings.json”文件下SqlServer數據庫字符串,新增MySql數據庫字符串
  4.  在整個解決方案中將字符串“SqlServerValueGenerationStrategy”替換成“MySqlValueGenerationStrategy”
  5. 在整個解決方案中將字符串“UseSqlServer”替換成“UseMySql”
  6. 刪除MyABPProject.EntityFrameworkCore項目中“Migrations”這個文件夾下所有遷移文件
  7. 通過程序包管理控制台根據命令“Add-Migration "XXX"”重新生成遷移文件
  8. 生成成功后,根據命令“Update-Database”還原MySql數據庫

     

  9. 重啟啟動項目,即可完成!

  為什么選擇“Pomelo.EntityFrameworkCore.MySql”:

  MySql/MariaDB 推薦使用Pomelo EF Core組件,官方引用文件目前可能存在bug,Pomelo EF Core同樣是微軟官方所推薦的。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM