Aggiorna database dopo modifiche al modello - Entity Framework 7

asp.net-core-mvc asp.net-mvc c# entity-framework entity-framework-core

Domanda

Ho creato un'app utilizzando l'ultimo ASP.NET5 MVC 6 Entity Framework 7 e ho configurato le migrazioni utilizzando

dnx . ef migration add Initial
dnx . ef migration apply

Funziona ma quando apporto una modifica al modello il database non viene aggiornato. Mi piacerebbe che il database si aggiornasse automaticamente dopo un cambio di modello quando eseguo il programma.

La mia ricerca indica solo le vecchie informazioni che non sembrano appropriate a Entity Framework 7.

Il mio codice attuale:

dnx . ef migration add Initial
dnx . ef migration apply

Qualcuno può indicarmi la giusta direzione?

Credo che funzioni per fare qualcosa del genere:

dnx . ef migration add Initial
dnx . ef migration apply

Risposta accettata

È necessario eseguire manualmente le migrazioni con EF7 dalla riga di comando o chiamare Database.Migrate dal codice, non c'è nulla di automatico in EF7 (una decisione deliberata) e dopo aver modificato il modello, creare una nuova migrazione


Risposta popolare

Sembra esserci una certa confusione tra la creazione di migrazioni e il processo di aggiornamento della struttura del database.

In EF7, non è più possibile generare automaticamente la migrazione (il delta tra la struttura del database corrente e le definizioni di entità). Questo deve essere fatto alla riga di comando usando il comando "migrations add".

L'aggiornamento della struttura del database, tuttavia, può ancora essere fatto tramite codice. Questo viene fatto usando il metodo dbContext.Database.Migrate (). Puoi collegarlo all'avvio in modo che, all'avvio, l'app garantisca che il tuo database sia aggiornato con la versione attuale della tua app.

Quindi il tuo flusso di lavoro di sviluppo può essere:

  1. modificare le definizioni di entità
  2. eseguire il comando "migrazioni aggiungi"
  3. avvia la tua app *

    • il numero 3 sopra riportato presuppone che hai cablato la chiamata Migrate () menzionata sopra nella tua Esecuzione automatica. In caso contrario, è necessario eseguire manualmente il comando "aggiornamento database".



Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché