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.

Foi útil?

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);
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top