1. 程式人生 > 實用技巧 >Entity Framework 資料庫遷移

Entity Framework 資料庫遷移

從專案實體檔案生成資料庫表的命令 (Code First)

  • 第一步:需要引入的NuGet包

    • Microsoft.EntityFrameworkCore
    • Microsoft.EntityFrameworkCore.Tools(EF工具包,建立實體)
    • 資料庫驅動
      • Sql Server 請安裝 Microsoft.EntityFrameworkCore.SqlServer
      • MySql/MariaDB請安裝Pomelo.EntityFrameworkCore.MySql (2.0及以上版本)
      • 其他資料庫請檢視https://docs.microsoft.com/zh-cn/ef/core/providers/
  • 第二步: 生成實體檔案DBContext(資料庫上下文) 見文章

  • 第三步:通過遷移來建立資料庫,需在工具->NuGet包管理器->程式包管理器控制檯選擇執行命令所在的專案下輸入以下命令

    Add-Migration init
    

    遷移成功可以看見在專案根目錄下添加了一個Migrations資料夾

  • 更新遷移到資料庫,執行命令

    Update-Database
    

然後刪除Migrations資料夾即可

從資料庫表生成專案實體檔案的命令 (DB First)

  • 需要引入的NuGet包

    • Microsoft.EntityFrameworkCore
    • Microsoft.EntityFrameworkCore.Tools
      (EF工具包,建立實體)
    • 資料庫驅動
      • Sql Server 請安裝 Microsoft.EntityFrameworkCore.SqlServer
      • MySql/MariaDB請安裝Pomelo.EntityFrameworkCore.MySql (2.0及以上版本)
      • 其他資料庫請檢視https://docs.microsoft.com/zh-cn/ef/core/providers/
  • 需在工具->NuGet包管理器->程式包管理器控制檯中選擇執行命令所在的專案下輸入以下命令

    Scaffold-DbContext "Server=.;database=test;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
    

    Scaffold-DbContext "Data Source=rdsqjywf72g48u7zrw5alo.sqlserver.rds.aliyuncs.com,3433; Database=chehuoyiv3-dev; User ID=chy_dev; Password=Chy123456;"  Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
    

    命令格式為:
    Scaffold-DbContext "資料庫連線字串" EF元件名(Microsoft.EntityFrameworkCore.SqlServer/Pomelo.EntityFrameworkCore.MySql/等等) -OutputDir 輸出資料夾名稱