¿La migración objetivo especificada '201201230637551_migration' no existe?
-
12-11-2019 - |
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.
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);
}