Ho creato un nuovo progetto ASP.NET Core 2.0 con Visual Studio 2017. Attualmente ho una classe di modello Coach
:
public class Coach
{
public int ID { get; set; }
public string Name { get; set; }
public string Location { get; set; }
public string Methodology { get; set; }
public string Price { get; set; }
public int Rating { get; set; }
//New property
public string Email { get; set; }
}
Voglio aggiungere una nuova Email
proprietà alla classe Coach
. Voglio anche creare una classe di Review
che viene utilizzata per rivedere un Coach
. Il mio modello di classe L' User
esamina gli allenatori. Tuttavia quando aggiungo nuove proprietà e nuove classi ottengo questo messaggio all'avvio dell'applicazione web:
Un'operazione di database non è riuscita durante l'elaborazione della richiesta.
SqlException: nome della colonna non valido "Email".
L'applicazione delle migrazioni esistenti per ApplicationDbContext può risolvere questo problema. Esistono migrazioni per ApplicationDbContext che non sono state applicate al database
00000000000000_CreateIdentitySchema
Applica migrazioniIn Visual Studio, è possibile utilizzare la console di Gestione pacchetti per applicare migrazioni in sospeso al database:
PM> Aggiornamento database
In alternativa, puoi applicare le migrazioni in sospeso da un prompt dei comandi nella directory del tuo progetto:dotnet ef database update
Seguendo il messaggio che ottengo non funziona. Il problema rimane ancora. Qualcuno può indicarmi la giusta direzione su come aggiornare il codice e quindi aggiornare il database che è memorizzato localmente? Come dovrebbe essere il flusso di lavoro quando si modificano i modelli in codice e si desidera che il database rispecchi tale modifica?
Generazione ed esecuzione di migrazioni
Code First Migrations ha due comandi primari che devi eseguire.
Add-Migration
imposterà la successiva migrazione in base alle modifiche apportate al modello dall'ultima migrazione
Update-Database
applicherà tutte le migrazioni in sospeso al database Abbiamo bisogno di impalcare una migrazione per occuparci della nuova proprietà Email
che abbiamo aggiunto. Il comando Add-Migration
ci consente di dare un nome a queste migrazioni, chiamiamo il nostro AddEmail
.
Eseguire il comando Add-Migration AddEmail
in Package Manager Console
Eseguire il comando Update-Database
in Package Manager Console