EF Code First Migration with Multiple Database / D

2019-02-02 20:44发布

问题:

I have two database each with their own dbcontext. I've setup two migration configurations. I can add a migration for the first db ust fine (Add-Migration DB1_InitialCreate -ConfigurationTypeName DB1Configuration). When I try to create an initial migration with the second db using: Add-Migration DB2_InitialCreate -ConfigurationTypeName DB2Configuration, I get the following error:

Unable to generate an explicit migration because the following explicit migrations are pending: [201205082215265_DB1_InitialCreate]. Apply the pending explicit migrations before attempting to generate a new explicit migration.

So I do what it says and update the database with:

Update-Database -ConfigurationTypeName DB1Configuration

Then I try to add a migration again for the second db but I keep getting the same error.

Any ideas on how to get migrations working for two databases/contexts?

回答1:

I've been able to answer my own question. My two configuration classes existed in the same namespace. As soon as I separated them, everything worked.



回答2:

With Entity Framework 6 it's easy.

It's the same procedure for both multiple DbContexts for one database and for multiple DbContexts for each their own database:

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

Source



回答3:

It's been a while, but this could be a better answer to your problem :)

Update-Database -ConfigurationTypeName "SlaveConfiguration"
                -StartupProjectName "FacturatieMVCv2.Data" -Verbose 
                -ConnectionString "connstring;" 
                -ConnectionProviderName "System.Data.SqlClient"