1. 框架以外依赖包引入
1.1. Pomelo.EntityFrameworkCore.MySql
1.2. Pomelo.EntityFrameworkCore.MySql.Design
2. 冲突包的检查和排除(自己遇到的出问题的地方)
2.1. 排除-Mysql.Data.Entity,具体原因不详。
2.2. 排除-MySQL.Data.EntityFrameworkCore,EfCore 报错,无法进行类型的强制转换,目前官方没有解决,所以使用Pomelo来替代。
3. 在EntityFrameworkCore层修改DbContextConfigurer文件中的数据库引用。
4. 在EntityFrameworkCore层修改DbContext的OnModelCreating方法,添加映射最大值限制。
5. 修改Migrator下的appsetting.json和Web.Host下的appsetting.json中的数据库连接配置
6. 在NuGet程序包管理控制台执行生成迁移脚本命令。
7. 在NuGet程序包管理控制台,执行EF数据库更新语句。
8. 用Navicat工具连接到数据库验证是否生成对应数据库。
【说明】ABP原始框架环境准备:
ASP.NET Core 2.X
.NET Core (Cross Plateform)
vue 2.5.16
vuex 3.0.1
ABP 3.8.1
yarn 1.9.4
1. 框架以外依赖包引入
1.1. Pomelo.EntityFrameworkCore.MySql
【说明】MYSQL基础支撑
1.2. Pomelo.EntityFrameworkCore.MySql.Design
【说明】生成升级脚本的设计支撑,例如,MYSQL数据库字段类型到实体类型的映射关系。
2. 冲突包的检查和排除(自己遇到的出问题的地方)
2.1. 排除-Mysql.Data.Entity,具体原因不详。
2.2. 排除-MySQL.Data.EntityFrameworkCore,EfCore 报错,无法进行类型的强制转换,目前官方没有解决,所以使用Pomelo来替代。
3. 在EntityFrameworkCore层修改DbContextConfigurer文件中的数据库引用。
【说明】修改前:
public static void Configure(DbContextOptionsBuilder<CourseraDbContext> builder, string connectionString)
{
builder.UseSqlServer(connectionString);
}
【说明】修改后:
public static void Configure(DbContextOptionsBuilder<CourseraDbContext> builder, string connectionString)
{
builder.UseMySql(connectionString);
}
【说明】注意:
如果引用的是UseMYSql,则说明,引用包为MySQL.Data.EntityFrameworkCore,生成迁移脚本的时候,仍然会报无法进行转换的错误。
4. 在EntityFrameworkCore层修改DbContext的OnModelCreating方法,添加映射最大值限制。
【说明】modelBuilder.Entity<ApplicationLanguageText>().Property(p => p.Value).HasMaxLength(500);
没有验证过为什么这样做。
5. 修改Migrator下的appsetting.json和Web.Host下的appsetting.json中的数据库连接配置
【说明】修改后的格式:
"Default": "Server=[mysql的连接地址]; port=[端口]; Database=[数据库名称]; user id=[登录账户]; password=[登录密码];"
6. 在NuGet程序包管理控制台执行生成迁移脚本命令。
【说明】执行:add-migration [迁移脚本名称]
执行成功后,将在 Migrations中生成[迁移脚本名称]命名的脚本文件。
7. 在NuGet程序包管理控制台,执行EF数据库更新语句。
【说明】执行 : update-database
8. 用Navicat工具连接到数据库验证是否生成对应数据库。