J'ai essayé d'exécuter la commande 'Enable-Migrations' dans un nouveau projet et j'ai reçu le message suivant:
PM> Enable-Migrations
The term 'Enable-Migrations' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verif
y that the path is correct and try again.
At line:1 char:18
+ Enable-Migrations <<<<
+ CategoryInfo : ObjectNotFound: (Enable-Migrations:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
Mais dans tous les autres projets, la commande fonctionne parfaitement.
Pourquoi cela arrive-t-il?
BTW, j'utilise VS2010 Professional SP1
EDIT: J'ai réinstallé avec la commande: Install-Package EntityFramework --IncludePrerelease et le problème a disparu.
J'ai réinstallé avec la commande: Install-Package EntityFramework -IncludePrerelease et le problème a disparu.
Simplement redémarrer Visual Studio a fonctionné pour moi. Pas besoin d'installer des paquets, etc.
Ce problème se produit car Entity Framework n'est pas installé. Veuillez installer Entity Framework à l’aide de la commande ci-dessous.
Install-Package EntityFramework -IncludePrerelease
Une fois installé, choisissez le projet dans la liste déroulante Projet par défaut de la console Gestionnaire de paquets.
Assurez-vous qu'au moins une classe de votre projet hérite du contexte de données, sinon utilisez la classe ci-dessous:
public class MyDbContext : DbContext
{
public MyDbContext()
{
}
}
Si nous ne le faisons pas, nous aurons une autre erreur:
No context type was found in the Assembly
Après avoir terminé ces choses, vous pouvez courir
enable-migrations
Le redémarrage de Visual Studio avec le privilège administrateur a résolu le problème pour moi.
Assurez-vous que vous exécutez Visual Studio en tant qu'administrateur.
D'abord, "Install-Package EntityFramework -IncludePrerelease", puis le redémarrage de Visual Studio en tant que administrateur a fonctionné pour moi ensemble.
J'ai eu le même problème avec VS 2019 Preview, .Net Core et EntityFramework Core.
Il s'avère que je devais installer via NuGet Microsoft.EntityFrameworkCore.Tools
et Microsoft.EntityFrameworkCore.Design
. Une fois que cela a été fait, cela a fonctionné comme un charme.
Dans Visual Studio 2012, j'ai eu la même erreur. A dû désinstaller NuGet (Outils> Extensions et mises à jour> Installé> Tout: Gestionnaire de package NuGet: bouton Désinstaller). Puis fermé Visual Studio. Rouvrez ensuite Visual Studio et réinstallez NuGet (Outils> Extensions et mises à jour> En ligne> Galerie Visual Studio: Gestionnaire de packages NuGet: bouton Télécharger). Puis dans les fenêtres suivantes: cliquez sur le bouton Installer, puis sur le bouton Fermer. Fermez puis rouvrez Visual Studio.
J'ai eu le même problème et j'ai essayé la plupart de la solution fournie par d'autres personnes, mais cela a fonctionné pour moi avec les étapes ci-dessous. J'ai VS 2017.
Pas:
Install-Package EntityFramework -IncludePrerelease
puis créer une classe en tant que
public class MyDBContext : DbContext { public MyDBContext() { } }
et à la dernière exécution
Enable-Migrations -EnableAutomaticMigrations
Ce qui n'a pas fonctionné pour moi:
: Redémarrage de VS.
: seulement la commande "Enable-Migrations", qui est sans -EnableAutomaticMigrations.
: restauration ou mise à jour du gestionnaire de paquets Nuget.
Mon erreur initiale au début était
/ * Le terme 'enable-migration' n'est pas reconnu comme le nom d'une applet de commande, d'une fonction, d'un fichier de script ou d'un programme utilisable. Vérifiez l'orthographe du nom ou, si un chemin a été inclus, vérifiez que le chemin est correct et réessayez. À la ligne: 1 caractère: 1 + activation-migration + ~~~~~~~~~~~ ~~ + CategoryInfo: ObjectNotFound: (enable-migration: String) [], CommandNotFoundException * /
Ce qui a résolu ce symptôme pour moi (VS2013) est de désinstaller puis de réinstaller le paquet EF avec Nuget. La différence dans le fichier csproj a changé cela ...
<Reference Include="EntityFramework">
<HintPath>..\packages\EntityFramework.6.1.1\lib\net45\EntityFramework.dll</HintPath>
</Reference>
... dans cette ...
<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\EntityFramework.6.1.1\lib\net45\EntityFramework.dll</HintPath>
</Reference>
Je ne comprends pas vraiment pourquoi, mais ça a fonctionné au moins.
Dans .NET Core, j'ai pu atteindre la même résolution que celle décrite dans la réponse acceptée, en entrant les informations suivantes dans la console du gestionnaire de packages:
Install-Package EntityFramework.Core -Pre
Installez la structure Entity dans le projet actuel à l'aide de la commande ci-dessous: PM> Install-Package EntityFramework -IncludePrerelease
Ajoutez une classe "MyDBContext" dans le dossier Model comme indiqué ci-dessous:
classe publique MyDBContext: DbContext {Public MyDBContext () {}}
Activez maintenant les migrations pour le projet actuel avec la commande ci-dessous: PM> enable-migrations
Comme j'avais déjà un dossier de migration, j'ai redémarré Visual Studio et exécuté Update-Database -verbose dans la console du gestionnaire de packages. Cela a fonctionné pour moi
J'ai eu le même problème et j'ai constaté que c'est à cause de caractères dans le chemin du projet comme [ou] je corrige le chemin du projet et cela a bien fonctionné!
Enable-Migrations -EnableAutomaticMigrations
J'ai essayé toutes les suggestions ci-dessus, mais rien n'a fonctionné pour moi, puis j'ai mis à jour Nuget Package Manager
et ça a marché ..
Vérifiez si la section de configuration "entityFramework" existe et décrite dans votre fichier .config
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.Microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/></configSections>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework"/>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer"/>
</providers>
</entityFramework>
Dans VS 2013, essayez d'installer UPDATE 1(RC1) et le problème est résolu.
Aucune de ces solutions n'a fonctionné pour moi. Ma solution était de supprimer packages/EntityFramework.6.1.3
et Restore NuGet Packages
J'ai remarqué ça packages/EntityFramework.6.1.3/tools/EntityFramework.psd1
était manquant, c’était donc une cause probable. Comment cela a été enlevé en premier lieu alors que je n'ai aucune idée.
exécuter en tant qu'administrateur vs = >> open opneproject
enabele-migration
add-migration migrationName
update-database
J'avais plusieurs projets dans la solution, mais j'avais le jeu de projets par défaut correct, alors j'ai pensé que cela devrait fonctionner.
Finalement, j'ai dû ajouter le -StartupProject MyProjectName
option à la commande