¿Por qué el paso de Migración EF de Entity Framework requiere una cadena de conexión a la base de datos?

Estoy tratando de usar y entender las Migraciones de EF (usando EF 4.3.1, Código Primero). Para crear un nuevo cambio, tengo que usar un comando como este:

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

¿Por qué Add-Migration requiere datos de cadena de conexión?Update-Database Necesita uno, eso tiene sentido. Pero, ¿no tiene Add-Migration todo lo que necesita de DbContext y la Configuración?

No es simplemente una maravilla ociosa, es muy confuso darle una base de datos, porque tenemos una cosa de "tenencia múltiple" en la que la base de datos deseada es flexible y puede cambiar de una solicitud a otra, y mucho menos en tiempo de compilación estática. Así que siAdd-Migration En realidad estamos UTILIZANDO esa base de datos para cualquier cosa, tenemos un problema.

ACTUALIZACIÓN: Nos dimos por vencidos en las migraciones de EF y estamos usandoMigrador fluido En cambio, y son felices. Es mucho, mucho más rápido, incluso considerando el hecho de que tenemos que escribir algunas cosas dos veces (una para el objeto EF y otra para la migración), y no tiene los problemas que se analizan en esta pregunta.

Respuestas a la pregunta(4)

Su respuesta a la pregunta