2011-12-30 17 views
4

我正在使用實體框架數據遷移。如果我更改了有關實體或其他內容的某些內容,我嘗試在程序包管理器控制檯上使用「添加遷移MyFirstMigration」。但它返回一個例外:EF Data Migrations在關閉項目後不起作用

The term 'add-migration' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was inclu 
ded, verify that the path is correct and try again. 
At line:1 char:14 
+ add-migration <<<< 
+ CategoryInfo   : ObjectNotFound: (add-migration:String) [], CommandNotFoundException 
+ FullyQualifiedErrorId : CommandNotFoundException 

如果我來自的NuGet卸載EntityFramework.Migrations並重新安裝它的工作有相同的代碼(「附加遷移MyFirstMigration」,「更新數據庫」),直到接近項目。

我該如何解決它?任何人遇到這種情況?

編輯:它適用於對了另一臺PC罰款...

+0

我相信他們發佈了一個新版本的NuGet來解決這個問題。 – Betty 2012-01-16 07:42:15

回答

12

我碰到這也是,雖然我測試VS 11和EF5,所以這可能並不適用於您。這可能是一些事情。

你必須按照下面的順序來打開VS:

  1. 隨着VS打開,關閉包管理器控制檯
  2. 關閉VS
  3. 打開VS
  4. 打開項目
  5. 打開包管理器控制檯

如果關閉VS,當包管理器控制檯是開放的,它記住了這一點。然後,當你重新打開VS時,打開你的項目之前,軟件包管理器控制檯已經打開,它變得混亂。


另一種可能性是,您安裝了其他EF軟件包,不知道「添加遷移」,並且他們正在創建方法。

在包管理器控制檯中運行「get-package」,查看安裝的內容。刪除不必要的/舊的東西。

+1

如果有一個答案是最令人生氣的,那就是「關閉然後重新開啓」。但地獄,它的作品。謝謝! – viggity 2014-12-05 19:59:04

+0

現在已經處理了近3年。太令人沮喪了。 – RMD 2015-04-14 13:38:48

0

有時會發生這種錯誤,當我們在默認打開的軟件包管理器控制檯(PMC)中複製和粘貼命令時,粘貼命令並嘗試執行它時也會出現相同的錯誤,但是當我關閉PMC和VS時再次打開VS然後打開PMC,然後輸入PMC命令,然後成功執行。