Por que a etapa de migração de EF Migrations do Entity Framework requer uma string de conexão de banco de dados?

Eu estou tentando usar e entender o EF Migrations (usando o EF 4.3.1, Code First). Para criar uma nova mudança, eu tenho que usar um comando como este:

Add-Migration MyMigration
   -ConnectionString "Data Source=.;Initial Catalog=mydb;" 
   -ConnectionProviderName "System.Data.SqlClient"
   -StartUpProjectName MyWebsite 
   -ProjectName MyEF.Migrations

Por que o Add-Migration requer dados de string de conexão?Update-Database precisa de um, isso faz sentido. Mas o Add-Migration não tem tudo o que precisa do DbContext e da Configuração?

Não é simplesmente uma maravilha ociosa, é muito confuso dar a ela um banco de dados, porque temos uma coisa de "multi-locação" onde o banco de dados desejado é flexível e pode mudar de pedido para pedido, sem falar em tempo de compilação estático. Então seAdd-Migration está realmente usando esse banco de dados para qualquer coisa, nós temos um problema.

ATUALIZAÇÃO: desistimos das migrações EF e estamos usandoMigrador Fluente em vez disso, e estão felizes. É muito, muito mais rápido, mesmo contando o fato de que temos que escrever algumas coisas duas vezes (uma vez para o objeto EF e uma vez para a Migração), e não tem os problemas discutidos nesta questão.

questionAnswers(4)

yourAnswerToTheQuestion