Первая миграция кода EF с несколькими базами данных / DbContext
у меня есть две базы данных, каждая со своим собственным dbcontext. Я настроил две конфигурации миграции. Я могу добавить миграцию для первого db ust fine (Add-Migration DB1_InitialCreate -ConfigurationTypeName DB1Configuration
). Когда я пытаюсь создать начальную миграцию со второй БД, используя:Add-Migration DB2_InitialCreate -ConfigurationTypeName DB2Configuration
, Я получаю следующую ошибку:
не удалось создать явную миграцию, поскольку ожидаются следующие явные миграции: [201205082215265_DB1_InitialCreate]. Применение ожидающих явных миграций перед попыткой создания новая явная миграция.
поэтому я делаю то, что он говорит, и обновляю базу данных с помощью:
Update-Database -ConfigurationTypeName DB1Configuration
затем я пытаюсь добавить миграцию снова для второй БД, но я продолжаю получать ту же ошибку.
есть идеи о том, как заставить миграции работать для двух баз данных/контекстов?
3 ответов
Я смог ответить на свой собственный вопрос. Мои два класса конфигурации существовали в одном пространстве имен. Как только я разделил их, все сработало.
С Entity Framework 6 это легко.
Это одна и та же процедура для нескольких DbContexts для одной базы данных и для нескольких DbContexts для каждой собственной базы данных:
Enable-Migrations -ContextTypeName <DbContext-Name-with-Namespaces> -MigrationsDirectory:<Migrations-Directory-Name>
Add-Migration -configuration <DbContext-Migrations-Configuration-Class-with-Namespaces> <Migrations-Name>
Update-Database -configuration <DbContext-Migrations-Configuration-Class-with-Namespaces> -Verbose
прошло некоторое время, но это может быть лучшим ответом на ваш вопрос :)
Update-Database -ConfigurationTypeName "SlaveConfiguration"
-StartupProjectName "FacturatieMVCv2.Data" -Verbose
-ConnectionString "connstring;"
-ConnectionProviderName "System.Data.SqlClient"