Я пытаюсь настроить проект библиотеки классов с EF core 2.1 и использовать эту библиотеку классов из проекта .NET core api.Когда я пытаюсь преобразовать мою схему в 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"
Поэтому после прочтения нескольких других тем я изменил свой файл csproj, чтобы он выглядел так в разделе ItemGroup
<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/