1. 框架之外依賴包引入vue
1.1. Pomelo.EntityFrameworkCore.MySqlmysql
1.2. Pomelo.EntityFrameworkCore.MySql.Designsql
2. 衝突包的檢查和排除(本身遇到的出問題的地方)vuex
2.1. 排除-Mysql.Data.Entity,具體緣由不詳。數據庫
2.2. 排除-MySQL.Data.EntityFrameworkCore,EfCore 報錯,沒法進行類型的強制轉換,目前官方沒有解決,因此使用Pomelo來替代。json
3. 在EntityFrameworkCore層修改DbContextConfigurer文件中的數據庫引用。app
4. 在EntityFrameworkCore層修改DbContext的OnModelCreating方法,添加映射最大值限制。框架
5. 修改Migrator下的appsetting.json和Web.Host下的appsetting.json中的數據庫鏈接配置工具
6. 在NuGet程序包管理控制檯執行生成遷移腳本命令。ui
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工具鏈接到數據庫驗證是否生成對應數據庫。