.net Core Migration 步驟
參考代碼地址:https://github.com/BBMMRunLoop/JK.GISService.git
- 必須包含Microsoft.EntityFrameworkCore.Tools的項目中
Cannot execute this command because 'Microsoft.EntityFrameworkCore.Tools' is not installed in project 'MuscleFellow.Data' - 必須要有實體類或者實體類對應(yīng)的Models子項目,同時必須要有自定義好的DBContext,里面配置實現(xiàn)都完成。比如:
public class DomainModelContext : DbContex {
public DomainModelContext(DbContextOptions<DomainModelContext> options) : base(options) {
}
public DbSet<tabBaseInfo> tabBaseInfo { get; set; }
public DbSet<tabProjectInfo> tabProjectInfo { get; set; }
protected override void OnModelCreating(ModelBuilder builder)
{
builder.Entity<tabBaseInfo>().HasKey(m => m.id);
builder.Entity<tabProjectInfo>().HasKey(m => m.id);
base.OnModelCreating(builder);
} }
- 啟動項目必須引用包含有自定義DbContext類的子項目
- 執(zhí)行命令 Add-Migration jkgismirationsvvv 開始執(zhí)行一次 用意是創(chuàng)建 Migration
執(zhí)行完成后工程中多了一個文件夾如下圖
可能會出現(xiàn)小錯誤如下圖:
- 通過實體類初始化數(shù)據(jù)庫,或者實體類結(jié)構(gòu)修改了更新到數(shù)據(jù)庫中钞澳。通過命令
Update-Database init 這個命令第一次不會成功,不管數(shù)據(jù)庫中數(shù)據(jù)庫是否存在都先要調(diào)用一次這個命令 Add-Migration init庆尘,這樣后面再根據(jù)實體類更新數(shù)據(jù)庫調(diào)用命令Update-Database init 就不會出錯
參考項目結(jié)構(gòu)如下圖 所有的命令都是在啟動項目 JK.GISService 下執(zhí)行:
Mysql 需要引入哪些包:
在啟動項目 如JK.GISService 下 project.json中引用
"SapientGuardian.EntityFrameworkCore.MySql": "7.1.14"
同時 在包管理控制臺窗口 針對在啟動項目 如JK.GISService 安裝
工具?的NuGet包管理器?包管理器控制臺
Install-Package Microsoft.EntityFrameworkCore.Tools –Pre
Install-Package Microsoft.EntityFrameworkCore
在project.json 中tools節(jié)點中增加
"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final" 如下:
"tools": {
"Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final",
"Microsoft.EntityFrameworkCore.Tools.DotNet": "1.0.0-preview3-final",
"Microsoft.AspNetCore.Razor.Tools": "1.0.0-preview2-final",
"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final"
},
sqlserver 需要引用哪些包
在啟動項目 如JK.GISService 下
工具?的NuGet包管理器?包管理器控制臺
Run Install-Package Microsoft.EntityFrameworkCore
Run Install-Package Microsoft.EntityFrameworkCore.SqlServer
Run Install-Package Microsoft.EntityFrameworkCore.Tools –Pre
Run Install-Package Microsoft.EntityFrameworkCore.SqlServer.Design
在project.json 中tools節(jié)點中增加
"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final" 如下:
"tools": {
"Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final",
"Microsoft.EntityFrameworkCore.Tools.DotNet": "1.0.0-preview3-final",
"Microsoft.AspNetCore.Razor.Tools": "1.0.0-preview2-final",
"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final"
},