2016-09-28 121 views
2

由於EF核心遷移到Microsoft.EntityFrameworkCore.*(而不是EntityFramework.*),似乎推薦添加數據庫遷移的命令行從包管理器返回到add-migration實體框架核心1.0.1添加遷移

ef core add migration documentation

但是似乎沒有一個封裝了對命令和v 1.0.1的包安裝不添加任何命令。

運行Add-Migration時,我得到的錯誤信息是因爲EntityFramework.Commands沒有安裝在啓動項目「項目名稱」

不能執行此命令。

我錯過了什麼嗎?有沒有新的方式來添加這些命令?謝謝你的幫助!

+0

您不應該通過軟件包管理器來實現此目的,而是通過標準cmd – cdie

+0

doc指示使用軟件包管理器控制檯,並且當我使用標準命令行(ps/cmder)時,該cmdlet未被識別 – baywet

+0

基於標準cmd,你應該做'dotnet遷移添加MigrationName',使其工作(一定要在DbContext和你的對象所在的文件夾內) – cdie

回答

6

爲了在.NET Core項目上使用包管理器控制檯命令(例如Add-Migration),您的project.json將需要如下所示。

{ 
    "dependencies": { 
     "Microsoft.EntityFrameworkCore.Sqlite": "1.0.1", 
     "Microsoft.EntityFrameworkCore.Tools": { 
      "version": "1.0.0-preview2-final", 
      "type": "build" 
     } 
    }, 
    "tools": { 
     "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final" 
    } 
} 

Microsoft.EntityFrameworkCore.Toolsdependencies確保PowerShell命令獲得註冊。它是"type": "build"確保它們不會與您的應用程序一起發佈。在dependencies下的Microsoft.EntityFrameworkCore.Tools確保dotnet ef命令被註冊(由PowerShell命令調用)。

+0

感謝您的回答,我正準備將我的評論凝聚在這裏。我還必須根據@tseng指出的文檔使用解決方法,如果他不這樣做,我會這樣做 – baywet