Первая миграция кода 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"