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