8

Tôi có hai cơ sở dữ liệu với mỗi dbcontext của riêng mình. Tôi đã thiết lập hai cấu hình di chuyển. Tôi có thể thêm di chuyển cho tiền phạt db đầu tiên của chúng tôi (Add-Migration DB1_InitialCreate -ConfigurationTypeName DB1Configuration). Khi tôi cố gắng tạo ra một di chuyển ban đầu với db thứ hai sử dụng: Add-Migration DB2_InitialCreate -ConfigurationTypeName DB2Configuration, tôi nhận được lỗi sau:Mã EF Di cư lần đầu với nhiều cơ sở dữ liệu/DbContext

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.

Vì vậy, tôi làm những gì nó nói và cập nhật cơ sở dữ liệu với:

Update-Database -ConfigurationTypeName DB1Configuration 

Sau đó, tôi cố gắng thêm một lần nữa di chuyển cho db thứ hai nhưng tôi vẫn nhận được cùng một lỗi.

Bất kỳ ý tưởng nào về cách di chuyển làm việc cho hai cơ sở dữ liệu/ngữ cảnh?

Trả lời

10

Tôi đã có thể trả lời câu hỏi của riêng mình. Hai lớp cấu hình của tôi tồn tại trong cùng một không gian tên. Ngay sau khi tôi tách chúng ra, mọi thứ đều hoạt động.

+0

Tôi có hai DbContexts trong cùng một không gian tên, nhưng không nhận được vấn đề này. Sử dụng EF 5.0 RTM. – angularsen

+1

+1 - Tôi cũng phải tách chúng bằng không gian tên (EF 5.0). – rufo

+2

Tôi cũng phải tách chúng bằng không gian tên (EF 6.x); nó không đủ để Update-Database -ConfigurationTypeName nameOfConfiguration – subsci

5

Nó được một thời gian, nhưng điều này có thể là một câu trả lời tốt hơn cho vấn đề của bạn :)

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

Với Entity Framework 6 thật dễ dàng.

Đó là thủ tục tương tự cho cả nhiều DbContexts cho một cơ sở dữ liệu và cho nhiều DbContexts cho mỗi cơ sở dữ liệu riêng của họ:

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