Я пытаюсь использовать и понимать миграцию EF (используя EF 4.3.1, Code First). Чтобы создать новое изменение, я должен использовать следующую команду:
Add-Migration MyMigration
-ConnectionString "Data Source=.;Initial Catalog=mydb;"
-ConnectionProviderName "System.Data.SqlClient"
-StartUpProjectName MyWebsite
-ProjectName MyEF.Migrations
Почему Add-Migration требует данных строки подключения? Update-Database
нуждается в них, это имеет смысл. У Add-Migration есть все необходимое из DbContext и Configuration?
Это не просто праздное удивление, это очень запутанно, чтобы дать ему базу данных, потому что у нас есть «мультитенантность», когда желаемая база данных является гибкой и может изменение от запроса к запросу, не говоря уже о статическом времени компиляции. Поэтому, если Add-Migration
на самом деле ИСПОЛЬЗУЕТ эту базу данных для чего-либо, у нас есть проблема.
ОБНОВЛЕНИЕ: мы отказались от миграции EF и используя Fluent Migratorвместо этого, и довольны.Это намного, намного быстрее, даже с учетом того факта, что мы должны написать некоторые эти ngs дважды (один раз для объекта EF и один раз для миграции), и у него нет проблем, обсуждаемых в этом вопросе.