如您所知,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的命令。
我只想从现有数据库生成模型。
答案 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
然后执行以下两个命令:
"tools": {
"Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.1.0-preview4-final",
"Microsoft.EntityFrameworkCore.Tools.DotNet": "1.1.0-preview4-final"
},
- 恢复套餐答案 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