Pregunta

Estoy usando la versión Beta de EntityFramework 4.3 y su instalación de migración de datos.Escribí un código siguiente para generar una migración personalizada y aplicarla al DB.

MigrationScaffolder ms=new MigrationScaffolder(configuration);
ScaffoldedMigration scaffoldedMigration= ms.Scaffold("Migration");

DbMigrator dbMigrator = new DbMigrator(configuration);
dbMigrator.Update(scaffoldedMigration.MigrationId);

La función de andamio funcionó bien y generó una migración correctamente.

pero se sale una excepción y dice

"La migración objetivo especificada '201201230637551_migration' no existe.Asegúrese de que la migración objetivo se refiera a una migración existente id. "

¿sucede esto desde que todavía esta es una versión beta?¿Puede alguien ayudarme a resolver esto?

gracias.

¿Fue útil?

Solución

Esto no es porque estabas usando una versión beta.MigrationscAaffolder Class es solo para generar una clase de configuración.El archivo generado no se agrega a la solución automáticamente.Si queremos pasarlo al método dbmigrator.Update (), deberíamos agregar el archivo generado a la solución primero.Luego debemos hacer una instancia de esa clase y pasarlo al método de actualización () como este.

{
    DbMigrationsConfiguration myConfiguration=new MyConfiguration();
    DbMigrator dbMigrator = new DbMigrator(configuration);
    dbMigrator.Update(myConfiguration);
}

Aquí MyConfiguration es la clase generada.

Además, no necesita aplicar las migraciones a su proyecto de esta manera.En su lugar puedes usar:

{
    DbMigrationsConfiguration myConfiguration=new DbMigrationsConfiguration(){
       AutomaticMigrationsEnabled = true;
       AutomaticMigrationDataLossAllowed = true;
    }
    DbMigrator dbMigrator = new DbMigrator(configuration);
    dbMigrator.Update(myConfiguration);
}

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top