4

我正在使用实体框架数据迁移。如果我更改有关实体或其他内容的内容,我会尝试在包管理器控制台上使用“ 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 ”)直到关闭项目。

我该如何解决?还有其他人经历过吗?

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

4

2 回答 2

12

我也遇到了这个问题,虽然我正在测试 VS 11 和 EF5,所以这可能不适用于你。这可能是几件事。

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

  1. 打开VS,关闭包管理器控制台
  2. 关闭 VS
  3. 打开VS
  4. 打开你的项目
  5. 打开包管理器控制台

如果关闭 VS,当包管理器控制台打开时,它会记住这一点。然后,当您重新打开 VS 时,包管理器控制台在您打开项目之前已经打开,它会感到困惑。


另一种可能性是您安装了其他不了解“添加迁移”的 EF 软件包,并且它们正在妨碍您。

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

于 2012-03-24T22:50:04.083 回答
0

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

于 2016-03-10T13:03:05.820 回答