Vuoi solo automaticamente aggiornare il database alla versione più recente quando e dove mai l'esecuzione dell'applicazione (sviluppo e produzione)?
Questa potrebbe non essere una buona idea, tranne in scenari molto semplici in cui sai che puoi fidarti della migrazione automatica e la migrazione manuale dei database non è fattibile. Si prega di vedere questa risposta: https://stackoverflow.com/a/15718190/2279059. Se trascuri questo avviso, continua a leggere.
Aggiungere il seguente alla web.config
:
<entityFramework>
<contexts>
<context type="MyAssembly.MyContext, MyAssembly" disableDatabaseInitialization="false">
<databaseInitializer type="System.Data.Entity.MigrateDatabaseToLatestVersion`2[[MyAssembly.MyContext, MyAssembly], [MyAssembly.Migrations.Configuration, MyAssembly]], EntityFramework" />
</context>
</contexts>
Questo può sembrare spaventoso, ma ha fondamentalmente lo stesso come il seguente codice:
Database.SetInitializer(new MigrateDatabaseToLatestVersion<MyContext, Migrations.Configuration>());
Se non avete la fortuna con web.config
, allora si potrebbe anche provare a inserire questo codice in Global.asax
. Personalmente preferisco la configurazione tramite il codice.
Se si desidera che il file di configurazione per look più pulito, è anche possibile derivare una nuova classe dal modello MigrateDatabaseToLatestVersion
classe in modo non è necessario utilizzare la sintassi criptica per il passaggio di argomenti di tipo nel file di web.cofig
:
public class MyDatabaseInitializer : public MigrateDatabaseToLatestVersion<MyContext, Migrations.Configuration> {}
Ciò che fa è impostare un inizializzatore del database che aggiorna automaticamente il database alla versione più recente.
(Fonte e maggiori dettagli: http://www.ralphlavelle.net/2012/09/entity-framework-code-first-webconfig.html)
Eventuali duplicati di [Uso Entity Framework (codice prima) migrazioni nella produzione] (http://stackoverflow.com/questions/10848746/using-entity-framework-code -prima-migrazioni-in-produzione) –