1. 程式人生 > 實用技巧 >ABP Vnext使用mysql資料庫

ABP Vnext使用mysql資料庫

ABP Vnext支援Sqlserver、Mysql、PostgreSql等資料庫,通過CLI模板建立的專案預設使用SqlServer,需要進行一定變更才支援其他資料庫,下面以使用Mysql舉例

1. 使用CLI建立一個帶UI的MVC專案

abp new Acme.BookStoreUi --template app --database-provider ef --ui mvc --mobile none

建立後項目如下

2. 使用Nuget安裝支援Mysql的包並對程式碼進行修改

  • 在EntityFrameworkCore專案裡移除Volo.Abp.EntityFrameworkCore.SqlServer包
  • 在EntityFrameworkCore專案裡新增Volo.Abp.EntityFrameworkCore.Mysql包
  • 修復因移除SqlServer包而報錯的程式碼,把SqlServer改為Mysql

  如下

using Volo.Abp.EntityFrameworkCore.SqlServer

using Volo.Abp.EntityFrameworkCore.MySQL;


typeof(AbpEntityFrameworkCoreSqlServerModule)

typeof(AbpEntityFrameworkCoreMySQLModule)


options.UseSqlServer();

options.UseMySQL();

3. 修改Acme.BookStoreUi.DbMigrations專案下appsetting.json檔案中的ConnectionStrings,修改為mysql資料庫連線字串,並複製進Acme.BookStoreUi.EntityFrameworkCore.DbMigrations專案。

4. 重建DbMigrations

首先,刪掉Acme.BookStoreUi.EntityFrameworkCore.DbMigrations下原有的Migrations資料夾,重建Migrations,我使用EF CLI方式重建

終端進入Acme.BookStoreUi.EntityFrameworkCore.DbMigrations,新建Migrations

dotnet ef migrations add initialDB

更新至資料庫

dotnet ef database update initialDB

執行Acme.BookStoreUi.DbMigrations專案初始化資料。

5.Acme.BookStoreUi.Web專案同樣修改appsetting.json檔案中的ConnectionStrings,執行即可