Я хочу, чтобы люди знали, что ответ с этим ниже - это то, что сработало для меня, но с одним оговоркой: не используйте строку MigrationsNamespace.
internal sealed class Configuration1 : DbMigrationsConfiguration{
public Configuration1 (){
AutomaticMigrationsEnabled = false;
MigrationsNamespace = "YourProject.Models.ContextNamespace1";
}
}
internal sealed class Configuration2 : DbMigrationsConfiguration{
public Configuration2 (){
AutomaticMigrationsEnabled = false;
MigrationsNamespace = "YourProject.Models.ContextNamespace2";
}
}
Однако у меня уже были две базы данных созданный с учетом их собственных контекстов, поэтому я обнаружил, что получаю сообщение об ошибке: «Пространство имен YourProject.Models уже определено ContextNamespace1». Это произошло потому, что «MigrationsNamespace =« YourProject.Models.ContextNamespace2 »;» вызывал dbcontext, который был определен в пространстве имен YourProjects.Models дважды после того, как я попробовал Init (один раз в файле Context1Init миграции и один раз, когда я определил его раньше).
Итак, я обнаружил, что я должен был в этот момент начать мою базу данных и миграции с нуля (к счастью, у меня не было данных, которые мне нужно было сохранить), следуя следующим указаниям здесь: http://pawel.sawicz.eu/entity-framework-reseting -migrations /
Затем я изменил код, чтобы НЕ включать строку MigrationsNamespace.
internal sealed class Configuration1 : DbMigrationsConfiguration{
public Configuration1 (){
AutomaticMigrationsEnabled = false;
}
}
internal sealed class Configuration2 : DbMigrationsConfiguration{
public Configuration2 (){
AutomaticMigrationsEnabled = false;
}
}
Затем я снова выполнил команду Add-Migration -configuration Configuration1 Context1Init и строка конфигурации Configuration-Configuration-Configuration снова (для моего второго контекста тоже), и, наконец, теперь все работает отлично.