我使用实体框架6和MVC 5并尝试首先在代码中启用迁移,这样我就可以避免数据丢失。但是当在包管理器控制台中键入命令时,它会抛出以下错误:
PM> Enable-Migrations -ContextTypeName [ContextClassName]术语 '使能迁移'不被识别为cmdlet的名称, 功能,脚本文件或可操作程序。检查拼写 名称,或者如果包含路径,请验证路径是否正确 再试一次。行:1个字符:1 + Enable-Migrations -ContextTypeName [ContextClassName] + ~~~~~~~~~~~~~~~~ + CategoryInfo:ObjectNotFound :( Enable-Migration:String)[],CommandNotFoundException + FullyQualifiedErrorId:CommandNotFoundException
我检查了所有重复项,但在我的案例中没有一项是有效的。
答案 0 :(得分:3)
这里有两种可能的情况。
未安装或未正确安装实体框架。如果你确实有引用它,那么首先要做:
PM> Uninstall-Package EntityFramework -Force
然后,
PM> Install-Package EntityFramework
确保之后重新启动Visual Studio
您实际正在使用Entity Framework Core,或者您已将Entity Framework添加到在完整框架上运行的ASP.NET Core项目中。在任何一种情况下,都不会有可用的Entity Framework包管理器命令。如果您错误地安装了EF Core,请将其删除并安装EF6。如果您有一个ASP.NET Core项目,则必须添加一个运行在EF6参考的完整框架上的控制台应用程序或类库。您将在此处管理所有实体,并针对此项目运行包管理器命令。原因是EF6包管理器命令与ASP.NET Core不兼容,即使您在完整框架上运行也是如此。