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

 

 

 

posted on 2020-08-16 22:04  aquilahkj  阅读(677)  评论(3编辑  收藏  举报