Dotnet ef не найден в .NET Core 3 - программирование
Подтвердить что ты не робот

Dotnet ef не найден в .NET Core 3

Я следую документам, чтобы создать начальную миграцию. Когда я выполняю dotnet, я получаю раздел справки, что означает, что PATH работает правильно.

Затем я пытаюсь выполнить команду ниже из документации в окне консоли:

dotnet ef migrations add InitialCreate  

Я получаю следующую ошибку:

Could not execute because the specified command or file was not found.  
Possible reasons for this include:  
  * You misspelled a built-in dotnet command.  
  * You intended to execute a .NET Core program, but dotnet-ef does not exist.  
  * You intended to run a global tool, but a dotnet-prefixed executable with this name could not be found on the PATH.
  • Я исключил первый элемент, так как скопировал команду.
  • Я исключил второй элемент, поскольку установлен пакет Microsoft.EntityFrameworkCore.SqlServer.
  • Я исключил третий пункт, потому что я получаю раздел справки при вызове dotnet.

Я гуглю проблему, но так как версия новая, не так много, чтобы продолжить и/или она тонет в аналогичных проблемах из более ранних версий.

Я попытался принудительно установить Microsoft.EntityFrameworkCore на тот случай, если его нужно явно добавить. Я столкнулся с сообщением об ошибке, в котором говорится, что последняя версия для выбора - 2.2.6, и переход на более раннюю версию невозможен. Я не уверен, как установить версию, совместимую с пакетом SQL, который у меня уже есть в моей системе (и еще менее уверен, что это правильный подход для устранения этой проблемы).

Detected package downgrade: Microsoft.EntityFrameworkCore from 3.0.0-preview6.19304.10 to 2.2.6. Reference the package directly from the project to select a different version.
Web ->
Microsoft.EntityFrameworkCore.SqlServer 3.0.0-preview6.19304.10 ->
Microsoft.EntityFrameworkCore.Relational 3.0.0-preview6.19304.10 ->
Microsoft.EntityFrameworkCore(>= 3.0.0-preview6.19304.10)
Web → Microsoft.EntityFrameworkCore(>= 2.2.6)

4b9b3361

Ответ 1

См. объявление для ASP.NET Core 3 Preview 4, в котором объясняется, что этот инструмент больше не является встроенным и требует явной установки:

Инструмент dotnet ef больше не является частью .NET Core SDK

Это изменение позволяет нам поставлять dotnet ef как обычный инструмент .NET CLI, который можно установить как глобальный или локальный инструмент. Например, чтобы иметь возможность управлять миграциями или создавать леса DbContext, установите dotnet ef как глобальный инструмент, введя следующую команду:

dotnet tool install -g dotnet-ef

Возможно, вам понадобится добавить следующие пакеты NuGet в ваш проект: