update migraciones habilitar framework c# .net database entity-framework ef-code-first

c# - habilitar - migraciones entity framework core



¿Por qué Add-Migration a veces crea migraciones duplicadas? (1)

Una instantánea del modelo de base de datos se guarda junto con cada migración en un archivo .resx. Cuando agrega una nueva migración, EF compara el modelo de base de datos actual (que se genera a partir de las clases de modelo y la configuración de su DbModelBuilder) con la última migración y determina los cambios entre ellos.

El problema que está describiendo puede ocurrir si sus migraciones no están sincronizadas. Nos sucede si dos desarrolladores realizan dos migraciones independientes y estas migraciones se fusionan posteriormente a la rama predeterminada.

Ejemplo:

Desarrollador 1

Migración AddColumnA

Desarrollador 2

Migración AddColumnB

Versión fusionada

Migración AddColumnA: la instantánea de la base de datos incluye la columna A

Migración AddColumnB: la instantánea de la base de datos incluye columnB pero no columnA

Si agrega otra migración, los cambios se determinan con respecto a la migración AddColumnB, que no contiene información sobre la columnaA. Una solución para este problema es generar una migración ficticia (con los métodos arriba y abajo vacíos) solo para tener la instantánea correcta del modelo de base de datos en la última migración.

Versión fusionada

Migración AddColumnA: la instantánea de la base de datos incluye la columna A

Migración AddColumnB: la instantánea de la base de datos incluye columnB pero no columnA

Simulacro de migración: instantánea de base de datos con columnA y columnB

Estoy enfrentando un problema extraño con el código de las primeras migraciones en Entity Framework versión 5. A veces, Update-Database falla debido a cambios pendientes, pero el comando Add-Migration solo produce migraciones con los cambios en la base de datos que ya se encuentran en las últimas migraciones y la base de datos está actualizada. fecha. Por lo tanto, espero que la nueva migración esté vacía.

¿Cómo detecta Add-Migration qué cambios se deben? No parece utilizar la base de datos como fuente.