1. 框架以外依賴包引入 1.1. Pomelo.EntityFrameworkCore.MySql 1.2. Pomelo.EntityFrameworkCore.MySql.Design 2. 衝突包的檢查和排除(自己遇到的出問題的地方) 2.1. 排除-Mysql.Data.Entity,具體 ...
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工具連接到資料庫驗證是否生成對應資料庫。