1
resposta

como faço para criar migrations sem estar conectado em uma base de dados?

parfa mim nao faz sentido ter que estar com uma conexao de banco de dados configurada para funcionar o comando da migration, se quero que somente o código seja gerado e nao executado, para que preciso estar conectado a um banco de dados? Tem uma maneira mais elegante que colocar um string de conexao falsa?

1 resposta

Olá, Roberto

Você tem razão sobre não fazer sentido, e bastante gente acha estranho isso.

Porém, para calcular as diferenças (e gerar a migração), o EF utiliza a tabela __MigrationHistory, que contém os campos:

  • MigrationId
  • ContextKey
  • Model
  • ProductVersion

Somente estas colunas! Mas como o EF usa essa tabela pra gerar a migração? Ele pega o valor da coluna Model, que contém uma versão comprimida de um documento XML contendo todo o modelo. Dessa forma, ele "descomprime" o Model do _MigrationHistory, compara com o modelo que está nas classes .NET do modelo e gera a diferença em forma de Migration.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software