实体框架命令无法识别

时间:2016-06-20 05:42:52

标签: entity-framework nuget asp.net-core asp.net-core-mvc

我使用的是ASP.NET Core MVC,由于某些原因,Visual Studio 2015或命令提示符窗口中的包管理器控制台无法识别任何实体框架命令,例如“启用迁移”和“启动迁移”。 ' dnx ef数据库更新'等。

我在使用MVC 5和Entity Framwork 6的任何其他项目中从未遇到任何EF迁移问题

我也尝试重新启动Visual Studio,就像推荐的许多答案一样,但这对我来说并不起作用。

启用迁移的错误消息是:

PM> Enable-migrations
Enable-migrations : The term 'Enable-migrations' 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 included, verify that the path is correct and try again.
At line:1 char:1
+ Enable-migrations
+ ~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (Enable-migrations:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

1 个答案:

答案 0 :(得分:1)

如果您安装了Entity Framewok Core或正在使用Asp.Net Core应用程序,则第一个“dnx”命令将不起作用,您需要使用.Net Core CLI命令,并且“enable-migrations”不是其中的一部分命令列表中的任何内容。

因此,要向项目添加迁移,您需要在从src文件夹的根目录打开的命令行中使用以下命令:

dotnet ef migrations add {MigrationName}

还有许多其他命令,通过在命令行中键入以下内容来了解​​更多命令:

dotnet ef database --help

dotnet ef dbcontext --help 

dotnet ef migrations --help 

假设您已经在项目中安装了EF Core和EF Core Tools,您应该在project.json中有这两个引用:

在依赖项下:

“Microsoft.EntityFrameworkCore.Tools”:“1.0.0-preview2-final” “Microsoft.EntityFrameworkCore.SqlServer”:“1.0.0”

在工具下:

“Microsoft.EntityFrameworkCore.Tools”:“1.0.0-preview2-final”

所有以前的信息都与ASP.Net Core应用程序下的Entity Framework Core相关。 如果你想使用ASP.Net Core和Entity Framework 6,它也是可能的,但这确实需要一些额外的步骤和一些管道来使它无缝地工作(有点),特别是如果你想要使用ASP.NEt与EntityFramork的身份6。 如果您正在寻找或者我提到的内容是否适用于您当前的情况以及是否解决了问题,请告诉我。 我会尽我所能。