“没有可执行文件找到匹配命令dotnet-ef”错误与EF Core数据库优先

时间:2017-03-20 07:41:52

标签: visual-studio entity-framework dbcontext database-first

如您所知,Visual Studio 2017的最新版本放弃了'project.json'并使用.csproj代替。

我正在使用RTM版本,并希望在this guide之后从现有数据库生成模型。我在最后一步出错:

  

Package Manager控制台的Entity Framework Core命令尚不支持基于csproj的.NET Core项目。请改用.NET命令行工具(即dotnet ef)。有关详细信息,请参阅https://go.microsoft.com/fwlink/?linkid=834381

发生错误后,我使用了它提到的链接切换到dotnet ef。这是我的包管理器命令:

  

PM> dotnet ef dbcontext scaffold“Server =。; Database = Jumpstart; Trusted_Connection = True;” Microsoft.EntityFrameworkCore.SqlServer

然后再次出现错误:

  

dotnet:找不到匹配命令“dotnet-ef”

的可执行文件

我使用了help命令,我发现dotnet没有名为ef的命令。

我只想从现有数据库生成模型。

5 个答案:

答案 0 :(得分:13)

遵循本教程

https://docs.microsoft.com/en-us/aspnet/core/data/ef-mvc/migrations

我遇到了同样的问题。刚刚编辑了 .csproj 中的ItemGroup部分,就像这样

<ItemGroup>
   <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.0.0" />
</ItemGroup>

答案 1 :(得分:4)

接受的答案是错误消息的最可能原因。但是,除了在.csproj文件中添加适当的引用外,还要确保Package Manager Console中的当前目录指向ASP.NET Core项目,否则任何dotnet ef命令将因OP标题中提到的错误而失败。

答案 2 :(得分:2)

我的问题已通过将<item android:id="@+id/action_profile" android:orderInCategory="100" android:title="Profile" android:actionLayout="@layout/layout_menu_profile" app:showAsAction="always" /> 更改为:

来解决
tools

然后执行以下两个命令:

  1. "tools": { "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.1.0-preview4-final", "Microsoft.EntityFrameworkCore.Tools.DotNet": "1.1.0-preview4-final" }, - 恢复套餐
  2. dotnet ef migrations

答案 3 :(得分:0)

在NetCore 2.0上,您只需运行Add-Migrations即可。

它会要求一个名字,而这就是全部。请确保在appsettings.json上有一个默认的连接字符串

答案 4 :(得分:0)

我解决了问题

在所有回答中提到添加Tools DotNet但没有解决我的问题,因为错过了我在下面提到的一些命令

通过手动编辑* .csproj文件来安装EF Core .NET命令行工具。

将Microsoft.EntityFrameworkCore.Tools.DotNet添加为DotNetCliToolReference。见下面的示例项目。

<ItemGroup>
   <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.0.0" />
</ItemGroup>
核心版本2的

更改了版本 但之后应该运行2个命令

然后导入部分所有答案丢失(此命令解决了我在visuall studio 2017中的问题)

1 - 执行dotnet add package Microsoft.EntityFrameworkCore.Design

2 - 执行dotnet restore。如果还原失败,则可能未正确安装工具。

更多信息 https://docs.microsoft.com/en-us/ef/core/miscellaneous/cli/dotnet