Visual Studio Code Entity Framework Core Add-Migration не распознан

Я использовал yoman для создания приложения ASP.NET Core Web API через редактор кода Visual Studio. Для справки я следовал этому учебнику здесь

API работает отлично. Тем не менее, я пытаюсь использовать Entity Framework Core Migrations с SQL Server. Когда я ввожу следующее в терминал кода Visual Studio:

Add-Migration MyDbInitialMigration

Получаю следующее сообщение:

'Add-Migration' is not recognized as an internal or external command, operable program or batch file.

У меня установлена ​​зависимость Microsoft.EntityFrameworkCore.Tools: 1.1.0-preview4-final. Я сделал это, используя расширение .Net Core Project Manager (Nuget).

В Visual Studio 2015 эта команда отлично работает с консолью диспетчера пакетов.

Я предполагаю, что использование Visual Studio Code Terminal является проблемой. Но кто-нибудь знает, как я могу использовать EF Core Migrations из самого редактора VS Code?

Спасибо за любую помощь.

Решение

Запуск команды dotnet ef migrations add InitialCreate привел к следующей ошибке:

No executable found matching command "dotnet-ef"

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

Microsoft.EntityFrameworkCore.Tools.DotNet

Ответ 1

Правильный формат для добавления новой миграции - dotnet ef migrations add yourMigrationName

и обновить базу данных dotnet ef database update

Ответ 2

Шаг 1 Сначала нам нужно добавить ссылку в файл *.csproj следующим образом

Шаг 2 в Bash/Командная команда

восстановление dotnet

Шаг 3

Dotnet EF миграции добавить MyDbInitialMigration

Ответ 3

Я работаю на Mac, поэтому Ruby установлен по умолчанию. Моим EF-командам потребовалось много дополнительных параметров --project, --startup-project и т.д. Каждый раз --startup-project это было --startup-project, поэтому я использовал rake, чтобы упростить это.

В корне моего проекта я добавил файл с именем rakefile со следующим содержимым:

desc "Add Migraion"
task :'add-migration' do
    ARGV.each { |a| task a.to_sym do ; end }  
    puts ARGV[1]
    sh "dotnet ef migrations add " + ARGV[1] + " --project MyProject.Data/MyProject.Data.csproj --startup-project MyProject.Web/MyProject.Web.csproj "
end

desc "Remove Migraion"
task :'remove-migration' do
    ARGV.each { |a| task a.to_sym do ; end }  
    puts ARGV[1]
    sh "dotnet ef migrations remove --project MyProject.Data/MyProject.Data.csproj --startup-project MyProject.Web/MyProject.Web.csproj"
end

desc "Update Database"
task :'update-database' do
    ARGV.each { |a| task a.to_sym do ; end }  
    puts ARGV[1]
    sh "dotnet ef database update --project MyProject.Data/MyProject.Data.csproj --startup-project MyProject.Web/MyProject.Web.csproj"
end

Затем в командной строке я запускаю эти команды:

rake add-migration <migrationName>
rake remove-migration
rake update-database