8

それぞれ独自のdbcontextを持つ2つのデータベースがあります。 2つの移行設定をセットアップしました。最初のデータベースは罰金(Add-Migration DB1_InitialCreate -ConfigurationTypeName DB1Configuration)の移行を追加できます。私が使用して、第2のDBとの初期の移行を作成しようとすると:Add-Migration DB2_InitialCreate -ConfigurationTypeName DB2Configurationを、私は次のエラーを取得する:複数のデータベース/ DbContextを使用したEFコードの最初の移行

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.

だから私はそれが言う何をすべきかとして、データベースを更新します。

Update-Database -ConfigurationTypeName DB1Configuration 

次にI 2番目のdbの移行をもう一度追加しようとしますが、同じエラーが発生します。

2つのデータベース/コンテキストで移行を実行する方法に関するアイデアはありますか?

答えて

10

私自身の質問に答えることができました。私の2つの構成クラスは同じ名前空間に存在していました。私がそれらを分けたら、すべてがうまくいった。

+0

私が持っています同じ名前空間内の2つのDbContext、この問題は発生しません。 EF 5.0 RTMを使用する。 – angularsen

+1

+1 - 名前空間(EF 5.0)で区切らなければなりませんでした。 – rufo

+2

私はまた、名前空間(EF 6.x)でそれらを分離しなければなりませんでした。 Update-Database -ConfigurationTypeName nameOfConfigurationには不十分でした – subsci

5

それはしばらくしているが、これはあなたの問題に良い答え:)

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

Entity Frameworkの6で、それは簡単だ可能性があります。

それは1つのデータベース用とそれぞれ独自のデータベースに対して複数のDbContextsのために複数のDbContextsの両方で同じ手順です:

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

関連する問題