visual update studio run migrations framework first existing enable code automatic entity-framework entity code-first-migrations

entity-framework - update - entity framework core migrations



¿Cómo puedo desactivar la migración en Entity Framework 6.0? (6)

Estoy tratando de ignorar la migración "Automática" usando Entity Framework 6.0 rc1. Mi problema es que no quiero esta función en este momento y cada vez que se ejecuta mi aplicación puedo ver todos los registros de la entidad que intentan crear todas las tablas.

Anticipate gracias.


A través de web.config, consulte https://msdn.microsoft.com/en-us/data/jj556606.aspx#Initializers

Vía código (curiosamente, MUCHA respuesta más simple)

public class MyDB : DbContext { public MyDB() { Database.SetInitializer<MyDB>(null); } }

o en Global.asax.cs

public class MvcApplication : System.Web.HttpApplication { protected void Application_Start() { // ... Database.SetInitializer<MyDB>(null); /// ... } }


El error que cometí fue llamar a Database.SetInitializer (null); demasiado tarde (después de que el contexto haya sido inicializado). La mejor forma de asegurar que las migraciones estén desactivadas es hacer la llamada anterior para todos sus contextos en el inicio de su aplicación. Yo prefiero este enfoque antes que configurarlo en la aplicación. Configurarlo para que pueda usar mi contenedor para ubicar mis contextos y luego construir una llamada.

var migrationsMethod = typeof(System.Data.Entity.Database).GetMethod("SetInitializer"); foreach (var contextType in allContextTypes) { migrationsMethod.MakeGenericMethod(contextType).Invoke(null, new object[] { null }); }


La desactivación de la migración automática también puede configurarse durante la invocación del comando enable-migrations (que crea la clase de Configuration ), utilizando el parámetro EnableAutomaticMigration con un valor de false :

enable-migrations -EnableAutomaticMigration:$false -ContextTypeName FullyQualifiedContextName

El creará una clase de Configuration que establece la propiedad AutomaticMigrationsEnabled en false, como en la respuesta anterior.


El parámetro EnableAutomaticMigration del comando enable-migrations se menciona en this artículo de la página Tutorial de Entity Framework (sin embargo, lo usan con true que parece ser el valor predeterminado).


Prueba esto:

internal sealed class Configuration : DbMigrationsConfiguration<YourContext> { public Configuration() { AutomaticMigrationsEnabled = false; } }

ACTUALIZAR:

También puedes probar esto:

Database.SetInitializer<YourContextType>(new CreateDatabaseIfNotExists());


Puede poner esto dentro de la sección entityFramework de la aplicación.config:

<contexts> <context type="YourNamespace.YourDbContext, YourAssemblyName" disableDatabaseInitialization="true"/> </contexts>

Esta página msdn le dice todo sobre la Sección de Configuración de Entity Framework .


Si encontraste esta pregunta esperando una respuesta simple para deshabilitar las migraciones porque escribiste "Habilitar migraciones" y ahora las cosas no funcionan como esperabas, como no ejecutar el método de inicialización que pensabas que se ejecutaría, busca en la solución explorer y eliminar la carpeta Migrations. Eso evitará que el código mire las configuraciones de migraciones para encontrar el código de inicialización. Para recuperar la carpeta Migrations, simplemente ejecute "Enable-Migrations" nuevamente.