방금 같은 문제에 부딪 혔고 다음 솔루션을 사용했습니다 (모두 패키지 관리자 콘솔에서)
PM> Enable-Migrations -MigrationsDirectory "Migrations\ContextA" -ContextTypeName MyProject.Models.ContextA
PM> Enable-Migrations -MigrationsDirectory "Migrations\ContextB" -ContextTypeName MyProject.Models.ContextB
마이그레이션 폴더에 2 개의 별도 폴더가 생성됩니다. 각각은 생성 된 Configuration.cs파일 을 포함 합니다. 불행히도 여전히 해당 Configuration.cs파일의 이름을 변경해야 합니다. 그렇지 않으면 두 파일이 있다는 불만이 있습니다. 내 파일 이름을 ConfigA.csandConfigB.cs
편집 : (제공 : 케빈 McPheat)을 Configuration.cs 파일 이름을 바꿀 때 또한 클래스 이름과 생성자의 이름을 변경, 기억 / EDIT를
이 구조로 간단하게 할 수 있습니다
PM> Add-Migration -ConfigurationTypeName ConfigA
PM> Add-Migration -ConfigurationTypeName ConfigB
그러면 구성 파일 옆의 폴더 내에 마이그레이션을위한 코드 파일이 생성됩니다 (이러한 파일을 함께 보관하는 것이 좋습니다).
PM> Update-Database -ConfigurationTypeName ConfigA
PM> Update-Database -ConfigurationTypeName ConfigB
마지막으로이 두 명령은 해당 데이터베이스에 올바른 마이그레이션을 적용합니다.
2016 년 2 월 8 일 편집 :
EF7 버전 7.0.0-rc1-16348로 약간의 테스트를 수행했습니다.
-o | --outputDir 옵션을 사용할 수 없습니다. 계속해서Microsoft.Dnx.Runtime.Common.Commandline.CommandParsingException: Unrecognized command or argument
그러나 마이그레이션이 처음 추가되면 마이그레이션이 Migrations 폴더에 추가되고 다른 컨텍스트에 대한 후속 마이그레이션이 마이그레이션의 하위 항목에 자동으로 추가되는 것처럼 보입니다.
원래 이름 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을 해당 폴더로 옮겼습니다 . 그런 다음 해당 파일 (스냅 샷 파일, 초기 마이그레이션 및 초기 마이그레이션 파일 ... designer.cs 아래에 세 번째 파일이 있음) 내의 네임 스페이스 이름을 변경했습니다. .ContextA네임 스페이스 에 추가 해야했고 프레임 워크가 자동으로 다시 처리합니다.
다음 명령을 사용하면 각 컨텍스트에 대한 새 마이그레이션이 생성됩니다.
PM> dnx ef migrations add Update1 -c "ContextAContext"
PM> dnx ef migrations add Update1 -c "ContextBContext"
생성 된 파일은 올바른 폴더에 저장됩니다.