Я просто наткнувся на ту ж проблему, і я застосував таке рішення (все з консолі менеджера пакунків)
PM> Enable-Migrations -MigrationsDirectory "Migrations\ContextA" -ContextTypeName MyProject.Models.ContextA
PM> Enable-Migrations -MigrationsDirectory "Migrations\ContextB" -ContextTypeName MyProject.Models.ContextB
Це створить дві окремі папки в папці Міграції. Кожен буде містити створений Configuration.cs
файл. На жаль, вам все одно доведеться перейменувати ці Configuration.cs
файли, інакше з’являться скарги на наявність двох з них. Я перейменував свої файли в ConfigA.cs
таConfigB.cs
EDIT : (люб’язно Кевін МакПіат) Пам'ятайте, перейменуючи файли Configuration.cs, також перейменуйте назви класів та конструктори / EDIT
З цією структурою можна просто обійтися
PM> Add-Migration -ConfigurationTypeName ConfigA
PM> Add-Migration -ConfigurationTypeName ConfigB
Який створить файли коду для міграції всередині папки поруч із конфігураційними файлами (це приємно зберігати ці файли разом)
PM> Update-Database -ConfigurationTypeName ConfigA
PM> Update-Database -ConfigurationTypeName ConfigB
І останнє, але не менш важливо, ці дві команди застосовують правильні міграції до своїх баз даних, що відповідають вимогам.
EDIT 08 лютого 2016:
Я трохи провів тестування з версією 7.0.0-rc1-16348 EF7
Я не зміг отримати можливість -o | --outputDir працювати. Це продовжувало даватиMicrosoft.Dnx.Runtime.Common.Commandline.CommandParsingException: Unrecognized command or argument
Однак це схоже на те, що перший раз, коли миграція додається, вона додається в папку Міграції, а наступна міграція для іншого контексту автоматично поміщається в підрозділ міграцій.
Оригінальні назви, ContextA
здається, порушують деякі умови іменування, тому я зараз використовую ContextAContext
і ContextBContext
. Використовуючи ці імена, ви можете використовувати такі команди: (зауважте, що мій dnx все ще працює з консолі диспетчера пакунків, і я не люблю відкривати окреме вікно CMD для міграцій)
PM> dnx ef migrations add Initial -c "ContextAContext"
PM> dnx ef migrations add Initial -c "ContextBContext"
Це створить знімок моделі та початкову міграцію в Migrations
папці для ContextAContext
. Він створить папку з іменем, ContextB
що містить ці файли дляContextBContext
Я вручну додав ContextA
папку і перемістив файли міграції з ContextAContext
цієї папки. Потім я перейменував простір імен всередині цих файлів (файл знімка, початкова міграція і зауважу, що під початковим файлом міграції є третій файл ... дизайнер.cs). Мені довелося додати .ContextA
до простору імен, і звідси фреймворк знову обробляє його.
Використання наступних команд створило б нову міграцію для кожного контексту
PM> dnx ef migrations add Update1 -c "ContextAContext"
PM> dnx ef migrations add Update1 -c "ContextBContext"
і створені файли поміщаються у правильні папки.