7

Ho eseguito un progetto MVC con ASP.NET 4.6 e EF7 localmente e tutto funziona correttamente. Ho eseguito il dnx. ef migration Comandi iniziali per creare le tabelle del database e tutto è andato bene. L'app funziona.Esecuzione della migrazione del database DNX (EF7) su Azure

Con Azure ho un problema, non riesco a eseguire il dnx. comando di migrazione ef quindi il mio database SQL è vuoto. Ho eseguito il debug di Startup.cs e la stringa di connessione è stata recuperata correttamente, ma le tabelle non sono presenti.

Ho utilizzato l'opzione Pubblica in Visual Studio 2015 per la distribuzione nella mia app Web di Azure.

Come posso eseguire questo comando sulla mia app Web? C'è un altro modo per generare il database?

Grazie

+0

Non ce l'ho di fronte a me, ma credo nelle opzioni di pubblicazione, c'è un "Esegui migrazioni EF su pubblicazione". Hai visto che? – mason

+1

Non esiste tale opzione almeno in Visual Studio 2015, EF7, DNX Beta 5. –

risposta

10

Sembra che il team EF ha eliminato le inizializzatori di database infami e offre un metodo più versatile per che in versione 7.

Basta utilizzare questi metodi in cantiere prima di ogni chiamata al database ,

yourDbContext.Database.EnsureCreated(); 

per creare il database nel caso in cui non esiste e

yourDbContext.Database.Migrate(); 

per applicare le migrazioni (se si utilizza questa funzionalità in seguito). Entrambi i metodi sopra hanno anche una versione asincrona.

Nella mia soluzione ho creato una classe statica che utilizzo per inizializzare il database e seminare con alcuni dati. Chiaro il metodo Seed dal metodo Configure nella classe Startup quando viene soddisfatta una condizione.

+0

Sembra che il comando '.Migrate' sia stato (ri) spostato. Qualcuno sa cosa fare adesso? – Sean

+0

Julie Lerman, un nome ben noto nello spazio EF ha scritto un articolo. Sembra che abbiano eliminato le migrazioni automatiche in EF 7. https://msdn.microsoft.com/en-us/magazine/mt614250.aspx – dotnethaggis

+0

Detto questo, sono in grado di utilizzare Database.Migrate dal costruttore di il mio DbContext. – dotnethaggis