2012-05-23 13 views

risposta

21

Utilizzare questo sul tuo all'avvio dell'applicazione per spegnere inizializzazione del database e le migrazioni:

Database.SetInitializer<YourContextType>(null); 
+0

Aggiungo questo codice in Costruzione, ma non mi aiuta – Greg

+0

Il costruttore è troppo tardi Greg. Leggi di nuovo la risposta. L'avvio dell'app è nel tuo global.asax – Stimul8d

+0

C'è un modo per disattivarlo a livello globale, o devo farlo per ogni dbContext? – JMarsch

7

Se si desidera disattivare banca dati di inizializzazione/migrazione completamente indipendentemente in cui progetto si utilizza il contesto è possibile aggiungere un costruttore statico nel tuo contesto per chiamare l'inizializzatore. Ciò garantisce che il SetInitializer venga chiamato una volta prima della prima costruzione/utilizzo del contesto.

public class YourContext : DbContext 
{ 
    static YourContext() 
    { 
     // don't let EF modify the database schema... 
     Database.SetInitializer<YourContext >(null); 
    } 

    public YourContext() : base("name=YourContext") 
    {} 
    ... 
} 

Tuttavia, se si desidera solo fare questo in un selezionare alcuni progetti, è meglio farlo in modo esplicito tramite l'avvio dell'applicazione - per esempio durante la normale configurazione IoC, come suggerito da Ladislav.

Problemi correlati