tutorial mvc migrations framework first existing enable code automatic entity-framework migration code-first

entity framework - mvc - ¿Cómo puedo deshabilitar el código de las primeras migraciones?



entity framework core migrations (4)

Entonces, la respuesta más completa que he encontrado es esta:

  1. Eliminar la carpeta Migrations dentro de su proyecto.
  2. Establecer Database.SetInitializer<DatabaseContext>(null); dentro de su inicializador DatabaseContext.
  3. Elimine la tabla __MigrationHistory dentro de su base de datos. Para EF6 +, la tabla se encuentra en Tables pero para las versiones anteriores se encuentra en System Tables .
  4. Construir y correr
  5. Lucro.

Tengo un modelo de entidad de primer código en EF5. Pero quiero administrar los cambios de la base de datos de forma manual. No quiero que EF modifique mi base de datos existente y todos sus datos. Pero cuando hago cambios paralelos en la asignación de EF y en la base de datos, EF se niega a operar correctamente diciéndome que necesito usar la primera migración de código. ¿Cómo desactivo esto?


Si quieres desactivar completamente las migraciones:

https://.com/a/9709407/141172

Sin embargo, me pareció mejor mantener activadas las primeras migraciones de código, pero utilizo la opción -Script para que EF cree un script de cambio de DB para mí que pueda aplicar a cada base de datos (desarrollo, control de calidad, producción) manualmente:

Update-Database -Script -ProjectName MyProject -StartupProjectName MyProject

De esa forma, EF creará el script de cambio para mí, y aún tengo control total sobre los cambios que se aplican. Yo versión los scripts de cambio como cualquier otro código fuente.


Si ya usó Migraciones, cambiar solo el Inicializador no ayudará. __MigrationHistory ir a Management Studio, abrir las tablas de la base de datos, ir a la carpeta System Tables y eliminar la tabla __MigrationHistory que se encuentra allí (para EF6 y superior, se encuentra directamente debajo de Tables ). Esto deshabilitará Migraciones para siempre.


establezca Database.SetInitializer en nulo.

public class DatabaseContext: DbContext { //the base accepts the name of the connection string provided in the web.config as a parameter public DatabaseContext() : base("DatabaseContext") { //disable initializer Database.SetInitializer<DatabaseContext>(null); }