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,運行即可