首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Entity Framework Code First 多數據庫多上下文自動遷移配置實戰

     編輯:程式設計綜合問答

核心難點

單一專案包含多個 DbContext(對應不同數據庫),enable-migrations 默認只能為一個 Context 生成 Migrations 目錄與 Configuration 類,無法直接支持多庫獨立遷移。

解決方案:分目錄多配置

  1. 為每個 Context 運行 enable-migrations -ContextTypeName Ns.ContextA -MigrationsDirectory:Migrations_A。
  2. 生成獨立目錄 Migrations_A、Migrations_B 及 ConfigurationA、ConfigurationB。
  3. 每個 ConfigurationX 設置 AutomaticMigrationsEnabled = true 並指定 TargetDatabase 連接字符串。
  4. 更新時指定配置:update-database -ConfigurationTypeName Ns.ConfigurationA。

啟動項目多庫自動遷移

public class MyInitializer : IDatabaseInitializer {
    public void InitializeDatabase(ContextA context) {
        var migrator = new DbMigrator(new ConfigurationA());
        migrator.Update();
    }
}
Database.SetInitializer(new MyInitializer());

注意

  • 遷移歷史表默認 __MigrationHistory,多 Context 共用同一數據庫時需區分 ContextKey。
  • 生產環境建議關閉自動遷移,改用 Script-Migration 生成 SQL 由 DBA 執行。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved