Библиотека классов с ядром EF 2.1?Не найден исполняемый файл, соответствующий команде "dotnet-ef" - PullRequest
0 голосов
/ 08 июня 2018

Я пытаюсь настроить проект библиотеки классов с 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/

1 Ответ

0 голосов
/ 08 июня 2018

Начиная с .NET Core SDK 2.1.300 cli поддерживает так называемые .NET Core Global Tools , и нет необходимости вручную добавлять эти инструменты в файл csproj.

Все, что вам нужнонужно просто позвонить dotnet tool install -g toolname аналогично npm.Вы можете найти некоторую информацию о доступных инструментах в этом репо .

dotnet ef уже включено в 2.1.300 SDK CLI.

Я предложу вам скачать и установить .NET Core SDK 2.1.300 для этой глобальной поддержки инструментов, но все еще использовать .NET Core 2.0, если у вас нет планов на переход.NET Core 2.1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...