Io uso Visual Studio per aggiornare tutti i miei ambienti con una certa migrazione. Aveva funzionato bene usando il comando qui sotto.
update-database -Migration initMigrationProduct -c ProductContext -Environment Production
In ef core 2.0 questo comando è stato modificato e il parametro -Environment è stato rimosso. in documenti ha detto.
"Con 2.0, puoi invece utilizzare la variabile d'ambiente ASPNETCORE_ENVIRONMENT."
https://docs.microsoft.com/en-us/ef/core/miscellaneous/cli/dotnet
Ora ho provato su tutti i tipi di modi, ma quando ASPNETCORE_ENVIRONMENT
il update-database
con ef core 2.0 non utilizzare la variabile ASPNETCORE_ENVIRONMENT
. Ho provato a impostare nel registro, proprietà dell'applicazione.
Per favore fatemi sapere cosa devo fare per farlo funzionare con l'aggiornamento di ambienti diversi?
Se avvio l'applicazione con diverse lanchsettings, funziona ma non utilizzo la console del gestore pacchetti.
Usare il gestore di pacchetti in Visual Studio era un vicolo cieco per me. La soluzione era:
Aggiungi sotto in .csproj nel progetto iniziale in soluzione:
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0" />
</ItemGroup>
Apri lo strumento comandi (cmd) e vai nella stessa cartella di .csproj per il progetto iniziale (progetto predefinito).
Esegui il comando mentre Anton Toshik suggerisce di set ASPNETCORE_ENVIRONMENT=Production
4. Quindi eseguire il comando dotnet ef database update initMigrationProduct -c ProductContext
e ora funziona.
NOTA : in questo database
comando e update
sono cambiati i posti rispetto alle versioni precedenti. E non ci sono argomenti / codice per la migrazione. I documenti spiegano di più dopo questo chiarimento:
https://docs.microsoft.com/en-us/ef/core/miscellaneous/cli/dotnet
Per impostare la variabile ASPNETCORE_ENVIRONMENT in Package Manager Console (PMC), all'interno di visual studio, in Production utilizzare questo comando prima
$env:ASPNETCORE_ENVIRONMENT='Production'
Quindi puoi usare
Update-Database
normalmente.