Dot-Net

如何為多個上下文啟用 EF 遷移到單獨的數據庫?

  • November 20, 2012

如何為同一項目中的多個 DB 上下文啟用 Entity Framework 5(版本 5.0.0)遷移,其中每個上下文對應於自己的數據庫?當我Enable-Migrations在 PM 控制台(Visual Studio 2012)中執行時,由於存在多個上下文而出現錯誤:

PM> Enable-Migrations
More than one context type was found in the assembly 'DatabaseService'.
To enable migrations for DatabaseService.Models.Product1DbContext, use Enable-Migrations -ContextTypeName DatabaseService.Models.Product1DbContext.
To enable migrations for DatabaseService.Models.Product2DbContext, use Enable-Migrations -ContextTypeName DatabaseService.Models.Product2DbContext.

如果我執行,則Enable-Migrations -ContextTypeName DatabaseService.Models.Product1DbContext不允許執行Enable-Migrations -ContextTypeName DatabaseService.Models.Product2DbContext,因為遷移已經存在:Migrations have already been enabled in project 'DatabaseService'. To overwrite the existing migrations configuration, use the -Force parameter.

對 Enable-Migrations 的第二次呼叫失敗,因為 Configuration.cs 文件已經存在。如果重命名該類和文件,您應該能夠執行第二個 Enable-Migrations,這將創建另一個 Configuration.cs。

然後,您需要指定在更新數據庫時要使用的配置。

Update-Database -ConfigurationTypeName MyRenamedConfiguration

引用自:https://stackoverflow.com/questions/13469881