web-dev-qa-db-fra.com

Add-Migration Core Entity Framework Visual Studio Code non reconnu

J'ai utilisé yoman pour générer une application API Web ASP.Net Core via l'éditeur de code Visual Studio. Pour référence, j'ai suivi ce tutoriel ici

L'API fonctionne bien. Toutefois, j'essaie d'utiliser les migrations Entity Framework Core avec SQL Server. Lorsque je tape ce qui suit dans le terminal de code Visual Studio:

Add-Migration MyDbInitialMigration

Je reçois le message suivant:

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

J'ai la dépendance Microsoft.EntityFrameworkCore.Tools: 1.1.0-preview4-final installée. J'ai fait cela en utilisant l'extension .Net Core Project Manager (Nuget).

Dans Visual Studio 2015, cette commande fonctionne correctement à partir de la console du gestionnaire de packages.

Je suppose que l'utilisation du terminal de Visual Studio Code est le problème. Mais est-ce que quelqu'un sait comment utiliser EF Core Migrations à partir de l'éditeur de code de VS lui-même?

Merci pour toute aide.

Solution

L'exécution de la commande dotnet ef migrations add InitialCreate a généré l'erreur suivante:

No executable found matching command "dotnet-ef"

Pour résoudre ce problème, je devais installer la dépendance suivante ET l'ajouter à la section outils:

Microsoft.EntityFrameworkCore.Tools.DotNet
8
GreenyMcDuff

Le format correct pour ajouter une nouvelle migration est dotnet ef migrations add yourMigrationName

et pour mettre à jour la base de données est dotnet ef database update

17
Dronacharya

Étape 1 Nous devons d’abord ajouter une référence dans le fichier * .csproj de la manière suivante

Étape 2 dans Bash/Command propt

restauration dotnet

Étape 3 

les migrations dotnet ef ajoutent MyDbInitialMigration

0
raghu.warrier

Je travaille sur Mac, donc Ruby est installé par défaut. Mes commandes EF nécessitaient beaucoup de paramètres supplémentaires --project, --startup-project etc. Cela était difficile à taper à chaque fois, alors j’ai utilisé rake pour faciliter cela.

Dans la racine de mon projet, j'ai ajouté un fichier appelé rakefile avec le contenu suivant:

desc "Add Migraion"
task :addmigration 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 :removemigration 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 :updatedatabase 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

Puis, en ligne de commande, j'exécute ces commandes:

rake addmigration <migrationName>
rake removemigration
rake updatedatabase
0
Chris Kooken