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.