.net Core Mysql/Sqlserver Migration

.net Core Migration 步驟

參考代碼地址:https://github.com/BBMMRunLoop/JK.GISService.git

  1. 必須包含Microsoft.EntityFrameworkCore.Tools的項目中
    Cannot execute this command because 'Microsoft.EntityFrameworkCore.Tools' is not installed in project 'MuscleFellow.Data'
  2. 必須要有實體類或者實體類對應的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);
    } }  
  1. 啟動項目必須引用包含有自定義DbContext類的子項目
  2. 執(zhí)行命令 Add-Migration jkgismirationsvvv 開始執(zhí)行一次 用意是創(chuàng)建 Migration
    執(zhí)行完成后工程中多了一個文件夾如下圖

QQ截圖20170104222349.png

可能會出現(xiàn)小錯誤如下圖:

migration.png
  1. 通過實體類初始化數(shù)據(jù)庫,或者實體類結構修改了更新到數(shù)據(jù)庫中。通過命令
    Update-Database init 這個命令第一次不會成功,不管數(shù)據(jù)庫中數(shù)據(jù)庫是否存在都先要調用一次這個命令 Add-Migration init,這樣后面再根據(jù)實體類更新數(shù)據(jù)庫調用命令Update-Database init 就不會出錯
migrationmysql.png

參考項目結構如下圖 所有的命令都是在啟動項目 JK.GISService 下執(zhí)行:

QQ截圖201701042230310.png

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"
},

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容