O destino especificado migração "201201230637551_Migration' não existe?
-
12-11-2019 - |
Pergunta
Eu estou usando o EntityFramework 4.3 versão beta e a sua facilidade de Migração de Dados.Eu escrevi o seguinte código para gerar uma Migração personalizada e aplicá-lo para o DB.
MigrationScaffolder ms=new MigrationScaffolder(configuration);
ScaffoldedMigration scaffoldedMigration= ms.Scaffold("Migration");
DbMigrator dbMigrator = new DbMigrator(configuration);
dbMigrator.Update(scaffoldedMigration.MigrationId);
Andaime função funcionou bem e gerado uma Migração corretamente.
Mas uma exceção vem e diz
"O destino especificado migração "201201230637551_Migration' não existem.Garantir que o destino da migração refere-se a uma migração existente id".
Isso acontece pois ainda esta é uma versão beta?Alguém pode me ajudar a resolver isso.
Obrigado.
Solução
Isto não é porque você está utilizando uma versão beta.MigrationScaffolder classe é apenas para gerar uma classe de configuração.Que gerou o arquivo não está sendo adicionado à solução automaticamente.Se queremos passar para DbMigrator.Método Update (), devemos adicionar o arquivo gerado para a primeira solução.Em seguida, deve-se fazer uma instância dessa classe, e de passar para o método update() como este.
{
DbMigrationsConfiguration myConfiguration=new MyConfiguration();
DbMigrator dbMigrator = new DbMigrator(configuration);
dbMigrator.Update(myConfiguration);
}
Aqui MyConfiguration é a classe gerada.
Além disso, você não precisa aplicar as migrações para o projeto dessa forma.Em vez disso, você pode usar:
{
DbMigrationsConfiguration myConfiguration=new DbMigrationsConfiguration(){
AutomaticMigrationsEnabled = true;
AutomaticMigrationDataLossAllowed = true;
}
DbMigrator dbMigrator = new DbMigrator(configuration);
dbMigrator.Update(myConfiguration);
}