J'utilise Visual Studio pour mettre à jour tous mes environnements avec une certaine migration. Cela a bien fonctionné en utilisant la commande ci-dessous.
update-database -Migration initMigrationProduct -c ProductContext -Environment Production
Dans ef core 2.0, cette commande a été modifiée et le paramètre -Environment a été supprimé. dans docs il a dit.
"Avec la version 2.0, vous pouvez utiliser la variable d’environnement ASPNETCORE_ENVIRONMENT À la place."
https://docs.Microsoft.com/en-us/ef/core/miscellaneous/cli/dotnet
J'ai maintenant essayé toutes sortes de méthodes, mais lorsque je lance le update-database
avec ef core 2.0, il n'utilise pas la variable ASPNETCORE_ENVIRONMENT
. J'ai essayé de définir dans le registre, les propriétés de l'application.
S'il vous plaît laissez-moi savoir ce que je dois faire pour que cela fonctionne avec la mise à jour des environnements différents?
Si je lance l'application avec différents réglages de lanchs, cela fonctionne, mais pas avec la console du gestionnaire de paquets.
Utiliser le gestionnaire de paquets dans Visual Studio était une impasse pour moi ... La solution était:
Ajouter ci-dessous dans .csproj dans le projet de démarrage en solution:
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0" />
</ItemGroup>
Ouvrez l'outil de commande (cmd) et allez dans le même dossier que le fichier .csproj pour démarrer le projet (projet par défaut).
Exécutez la commande comme Anton Toshik a suggéré set ASPNETCORE_ENVIRONMENT=Production
4.Ensuite, exécutez la commande dotnet ef database update initMigrationProduct -c ProductContext
Et maintenant, cela fonctionne.
REMARQUE: dans cette commande, database
et update
ont changé de place depuis les versions précédentes. Et il n'y a pas d'argument/code pour la migration. Les docs expliquent plus après cette clarification:
https://docs.Microsoft.com/en-us/ef/core/miscellaneous/cli/dotnet
Pour définir la variable ASPNETCORE_ENVIRONMENT dans la console PMC (Package Manager Console), dans Visual Studio, sur Production, utilisez d'abord cette commande
$env:ASPNETCORE_ENVIRONMENT='Production'
Ensuite, vous pouvez utiliser
Update-Database
normalement.
Selon EntityFrameworkCore # 6846 la solution correcte consiste à utiliser l'option --environment
, les commandes dotnet ef
ne respectant pas ASPNETCORE_ENVIRONMENT
dotnet ef database update --environment Production