添加迁移失败,因为未安装EntityFrameworkCore.Tools

我想通过以下教程创建一个使用EF Core的控制台应用程序: http : //ef.readthedocs.io/en/latest/platforms/full-dotnet/new-db.html 。

我的问题是,我无法执行该声明

Add-Migration 

如教程中所述。 它告诉我:

 PM> Add-Migration MyFirstMigration Cannot execute this command because 'Microsoft.EntityFrameworkCore.Tools' is not installed in project 'src\AppEf'. Add 'Microsoft.EntityFrameworkCore.Tools' to the 'tools' section in project.json. See http://go.microsoft.com/fwlink/?LinkId=798221 for more details. 

所有添加的组件:

在此处输入图像描述

怎么了?

更新

声明dotnet restore工作, dotnet-ef --help根本不起作用。
在此处输入图像描述

你可以看到,该语句是在项目文件夹中执行的。

正如评论中提到的一些人,需要将Microsoft.EntityFrameworkCore.Tools添加到project.json的tools部分。

我已经使用最新的(2016年7月)版本的EF Core和工具包测试了这个project.json,它的工作原理如下:

 { "buildOptions": { "emitEntryPoint": true }, "dependencies": { "Microsoft.EntityFrameworkCore.SqlServer": "1.0.0", "Microsoft.EntityFrameworkCore.Design": { "version": "1.0.0-preview2-final", "type": "build" }, "Microsoft.NETCore.App": { "type": "platform", "version": "1.0.0" } }, "frameworks": { "netcoreapp1.0": {} }, "tools": { "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final" }, "version": "1.0.0-*" } 

要使用它,请从项目文件夹中执行以下命令:

 λ dotnet restore log : Restore completed in 2810ms. λ dotnet ef --help Compiling EfCoreTester2 for .NETCoreApp,Version=v1.0 Compilation succeeded. 0 Warning(s) 0 Error(s) Time elapsed 00:00:01.7208394 Entity Framework .NET Core CLI Commands 1.0.0-preview2-21431 Usage: dotnet ef [options] [command] Options: -h|--help Show help information -v|--verbose Enable verbose output --version Show version information (... etc) 

起初,我No executable found matching command "dotnet-ef"直到我意识到你必须从项目文件夹内部执行命令(在我的情况下是src\projectName )。 如果您尝试从解决方案根目录执行此操作,则无法正常工作。

我最终得到了这样的包配置

 "dependencies": { "Microsoft.NETCore.App": { "version": "1.0.1", "type": "platform" }, "Microsoft.EntityFrameworkCore.Design": "1.0.1", "Microsoft.EntityFrameworkCore.SqlServer.Design": "1.0.1", ... } "tools": { "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview3-final", "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview3-final" }, 

这个命令有效

 Scaffold-DbContext "Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=;Integrated Security=True;" "Microsoft.EntityFrameworkCore.SqlServer" -OutputDir Entities -Context "ApplicationDbContext" -DataAnnotations -Force -Project .Data -StartupProject .Api 

在这里,我将一个上下文搭建到一个单独的类库项目中,其名称为Data ,其中Web应用程序是Api