我正在尝试使用EF core2.1设置一个类库项目,并使用.NET核心应用程序接口项目中的这个类库。当我试图将我的模式反向工程到dbcontext中时,我得到一个错误,抱怨缺少EF命令。
类库csproj
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.1.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.1.0" />
</ItemGroup>
</Project>
donet命令
dotnet ef dbcontext scaffold "Server=.;Database=MyDb;user id=my-user;password=my-pwd;" Microsoft.EntityFrameworkCore.SqlServer -c LastMileContext -o Data
错误:
No executable found matching command "dotnet-ef"
因此,在阅读了其他几个线程之后,我在ItemGroup部分更改了我的csproj文件,如下所示
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.1.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.1.0" />
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0" />
</ItemGroup>
现在EF命令运行了,我得到了我的实体类。我的问题是,为什么我还需要手动向csproj文件中添加某些内容?没有别的办法了吗?推荐的方式是什么?似乎我错过了一个dotnet命令步骤或别的什么?
而且,看起来我不是唯一遇到这些问题的人https://fpnotebook.wordpress.com/2017/11/12/solution-entity-framework-core-and-net-core-class-libraries-2-0/
https://stackoverflow.com/questions/50767086
复制相似问题