2012-05-23 11 views

Respuesta

21

Uso esto en su inicio de la aplicación para apagar la inicialización de la base de datos y las migraciones:

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

Agregué este código en la construcción, pero no me ayuda – Greg

+0

El constructor es demasiado tarde Greg. Lee la respuesta nuevamente El inicio de la aplicación está en su global.asax – Stimul8d

+0

¿Hay alguna manera de desactivarlo globalmente, o tengo que hacer esto para cada dbContext? – JMarsch

7

Si desea desactivar la base de datos de inicialización/migración por completo, independientemente de en qué proyecto estás usando su Contexto puede agregar un constructor estático para su contexto para llamar al inicializador. Esto asegura que se llamará al SetInitializer una vez antes de la primera construcción/uso de su contexto.

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

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

Sin embargo, si sólo quiere hacer esto en un grupo selecto de proyectos, es mejor hacerlo de forma explícita a través de inicio de la aplicación - por ejemplo, durante su configuración normal de IoC, como lo sugirió Ladislav.

Cuestiones relacionadas