关闭项目后,EF Data Migrations不起作用

时间:2011-12-30 11:04:57

标签: entity-framework-4.1 data-migration ef-migrations

我正在使用实体框架数据迁移。如果我改变了关于entites或其他东西的东西,我尝试在Package Manager Console上使用“ add-migration MyFirstMigration ”。但它返回了一个例外:

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并重新安装它使用相同的代码(“ add-migration MyFirstMigration ”,“ update-database ”)直到关闭项目

我该如何解决?有没有其他人经历过这个?

编辑:顺便说一下,它在另一台电脑上工作正常......

2 个答案:

答案 0 :(得分:12)

我也碰到了这个,虽然我正在测试VS 11和EF5,所以这可能不适用于你。这可能是一些事情。

您必须按以下顺序打开VS:

  1. 在VS打开的情况下,关闭包管理器控制台
  2. 关闭VS
  3. 打开VS
  4. 打开您的项目
  5. 打开包管理器控制台
  6. 如果关闭VS,当打包管理器控制台打开时,它会记住这一点。然后,当您重新打开VS时,在打开项目之前包管理器控制台已经打开并且它会混淆。


    另一种可能性是你安装了其他不知道“添加迁移”的EF软件包,而且它们正在阻碍它们。

    在包管理器控制台中运行“get-package”,以查看安装的内容。删除不必要的/旧的东西。

答案 1 :(得分:0)

有时会发生此错误,当我们在默认打开的软件包管理器控制台(PMC)中复制并粘贴命令时,在粘贴命令并尝试执行命令时也会出现相同的错误,但是当我再次关闭PMC和VS时我打开VS然后打开PMC,然后输入PMC命令然后执行成功。