2016-02-01 62 views
12

我在project.json中將框架版本設置爲:dnx46。 也有以下軟件包:EF7:術語「添加遷移」不被識別爲cmdlet的名稱

"dependencies": { 
    "EntityFramework.Commands": "7.0.0-rc1-final", 
    "EntityFramework.Core": "7.0.0-rc1-final", 
    "EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final", 
    "Microsoft.AspNet.Identity.EntityFramework": "3.0.0-rc1-final" 
    } 

然而,當我進入運行啓用的遷移命令我得到如下:

術語「啓用的遷移」沒有被識別爲cmdlet

有誰知道我如何獲得在最新的.NET中運行的EF遷移?

回答

0

EF Core(EF7)中沒有「enable-migrations」命令。

只需使用「添加遷移」

+0

這是在PowerShell控制檯還是新的DNX工具? – user183872

+0

Powershell控制檯 – ErikEJ

+0

PM> add-migration add-migration:術語'add-migration'不被識別爲cmdlet,函數,腳本文件或可操作程序的名稱。請檢查 名稱的拼寫,或者如果包含路徑,請驗證路徑是否正確,然後重試。 – user183872

6

由於ErikEJ mentioned,沒有「啓用的遷移」。您將需要使用「添加遷移」。請參閱EF Core的PowerShell命令的官方文檔:http://docs.efproject.net/en/latest/cli/powershell.html

在某些版本的Visual Studio中,似乎在NuGet和Package Manager控制檯中存在一個錯誤。如果在添加命令包後無法識別cmdlet,請嘗試重新啓動VS.

此外,在RC1之後將不支持dnx命令。新的(即將發佈的)dotnet工具將可用於RC2。見https://github.com/aspnet/EntityFramework/issues/3925

+0

即使在重新啓動後,添加遷移仍然不起作用。我很高興堅持使用PowerShell,但是令我驚訝的是,由於Visual Studio Code需要這種工具,不再支持dnx命令嗎? – user183872

+0

dnx命令將被dotnet命令替換。他們的工作原理幾乎相同,所以VS Code用戶仍然會使用EF工具。 – natemcmaster

+0

你使用哪個操作系統版本? – ErikEJ

1

要添加EF7新的遷移使用這個命令:

dnx ef migrations add YourMigrationUniqueName 
5

我成功的唯一途徑使用最新的EF Core &與2015工作的EntityFrameworkCore.Tools(其中包括Add-Migration)可以手動從包管理器控制檯調用init腳本,如下所示:

PM> %UserProfile%\.nuget\packages\Microsoft.EntityFrameworkCore.Tools\1.0.0-preview1-final\tools\init.ps1 
24

這是爲我工作來解決這個問題:部分

Install-Package Microsoft.EntityFrameworkCore.Tools –Pre 

在project.json添加這個(如果不存在的話)的 「工具」:

運行:

"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview4-final", 

有用參考:https://docs.efproject.net/en/latest/platforms/aspnetcore/new-db.html

+1

那麼這是現在工作?我被告知它不被支持(見下面的答案)。 – user183872

+0

是的,它適用於我與Visual Studio社區2015版14.0.25425.01更新3與Microsoft.EntityFrameworkCore.Tools版本1.0.0-preview2-final –

+3

這最終爲我工作。我不得不重新啓動VS並刪除我的'project.lock.json'文件。 – craftworkgames

相關問題