[EF Core] 遷移基礎知識


[文章內容來源於Microsoft Doc]

  開發期間,數據模型將發生更改並與數據庫不同步。 可以刪除該數據庫,讓 EF 創建一個新的數據庫來匹配該模型,但此過程會導致數據丟失。 EF Core 中的遷移功能能夠以遞增方式更新數據庫架構,使其與應用程序的數據模型保持同步,同時保留數據庫中的現有數據。

  遷移包括命令行工具和 API,可幫助執行以下任務:

  • 創建遷移。 生成可以更新數據庫以使其與一系列模型更改同步的代碼。
  • 更新數據庫。 應用掛起的遷移更新數據庫架構。
  • 自定義遷移代碼。 有時,需要修改或補充生成的代碼。
  • 刪除遷移。 刪除生成的代碼。
  • 還原遷移。 撤消數據庫更改。(sqlite不支持表和字段的重命名等給還原帶來很多問題)
  • 生成 SQL 腳本。 可能需要一個腳本來更新生產數據庫,或者對遷移代碼進行故障排除。
  • 在運行時應用遷移。 當設計時更新和正在運行腳本不是最佳選項時,調用 Migrate() 方法。

創建遷移

PowerShell-> Add-Migration InitialCreate

.Net Core CLI-> dotnet ef migrations add InitialCreate

更新數據庫

PowerShell-> Update-Database

.Net Core CLI-> dotnet ef database update

自定義遷移代碼

PowerShell-> Add-Migration AddProductReviews

.Net Core CLI-> dotnet ef migrations add AddProductReviews

修改遷移基架中的代碼,然后更新數據庫。

空遷移

有時模型未變更,直接添加遷移也很有用處。 在這種情況下,添加新遷移會創建一個帶空類的代碼文件。 可以自定義此遷移,執行與 EF Core 模型不直接相關的操作。 可能需要通過此方式管理的一些事項包括:

  • 全文搜索
  • 函數
  • 存儲過程
  • 觸發器
  • 視圖

刪除遷移

 

PowerShell-> Remove-Migration

.Net Core CLI-> dotnet ef migrations remove

還原遷移

PowerShell-> Update-Database LastGoodMigration

.Net Core CLI-> dotnet ef database update LastGoodMigration

生成 SQL 腳本 

PowerShell-> Script-Migration

.Net Core CLI-> dotnet ef migrations script

在運行時應用遷移

 myDbContext.Database.Migrate();

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM