Saya baru saja mengalami masalah yang sama dan saya menggunakan solusi berikut (semua dari Package Manager Console)
PM> Enable-Migrations -MigrationsDirectory "Migrations\ContextA" -ContextTypeName MyProject.Models.ContextA
PM> Enable-Migrations -MigrationsDirectory "Migrations\ContextB" -ContextTypeName MyProject.Models.ContextB
Ini akan membuat 2 folder terpisah di folder Migrasi. Masing-masing akan berisi Configuration.cs
file yang dihasilkan . Sayangnya Anda masih harus mengganti nama Configuration.cs
file tersebut jika tidak akan ada keluhan tentang memiliki dua di antaranya. Saya mengganti nama file saya menjadi ConfigA.cs
danConfigB.cs
EDIT : (courtesy Kevin McPheat) Ingat saat mengganti nama file Configuration.cs, juga ganti nama kelas dan konstruktor / EDIT
Dengan struktur ini Anda bisa langsung melakukannya
PM> Add-Migration -ConfigurationTypeName ConfigA
PM> Add-Migration -ConfigurationTypeName ConfigB
Yang akan membuat file kode untuk migrasi di dalam folder di sebelah file konfigurasi (ini bagus untuk menyimpan file-file itu bersama-sama)
PM> Update-Database -ConfigurationTypeName ConfigA
PM> Update-Database -ConfigurationTypeName ConfigB
Dan yang tak kalah pentingnya kedua perintah itu akan menerapkan migrasi yang benar ke database yang sesuai.
EDIT 08 Feb, 2016:
Saya telah melakukan sedikit pengujian dengan EF7 versi 7.0.0-rc1-16348
Saya tidak bisa mengaktifkan opsi -o | --outputDir. Itu terus memberiMicrosoft.Dnx.Runtime.Common.Commandline.CommandParsingException: Unrecognized command or argument
Namun tampaknya saat pertama kali ditambahkan, migrasi ditambahkan ke folder Migrasi, dan migrasi berikutnya untuk konteks lain secara otomatis dimasukkan ke dalam subdolder migrasi.
Nama asli ContextA
sepertinya melanggar beberapa konvensi penamaan jadi sekarang saya menggunakan ContextAContext
dan ContextBContext
. Dengan menggunakan nama-nama ini, Anda dapat menggunakan perintah berikut: (perhatikan bahwa dnx saya masih berfungsi dari konsol manajer paket dan saya tidak suka membuka jendela CMD terpisah untuk melakukan migrasi)
PM> dnx ef migrations add Initial -c "ContextAContext"
PM> dnx ef migrations add Initial -c "ContextBContext"
Ini akan membuat snapshot model dan migrasi awal di Migrations
folder untuk ContextAContext
. Ini akan membuat folder bernama yang ContextB
berisi file-file ini untukContextBContext
Saya menambahkan ContextA
folder secara manual dan memindahkan file migrasi dariContextAContext
ke folder itu. Kemudian saya mengganti nama namespace di dalam file-file itu (file snapshot, migrasi awal dan perhatikan bahwa ada file ketiga di bawah file migrasi awal ... designer.cs). Saya harus menambahkan .ContextA
namespace, dan dari sana framework menanganinya secara otomatis lagi.
Menggunakan perintah berikut akan membuat migrasi baru untuk setiap konteks
PM> dnx ef migrations add Update1 -c "ContextAContext"
PM> dnx ef migrations add Update1 -c "ContextBContext"
dan file yang dihasilkan disimpan di folder yang benar.