簡體   English   中英

從 EF 遷移到 EF Core 時,是否需要使用整個數據庫結構創建新的遷移?

[英]When migrating from EF to EF Core do you need to create a new migration with the entire database structure?

我正在將 API 從 .NET Framework 4.7 遷移到 .NET 6(包括 EF 到 EF Core),當我創建dbContext並執行Add-Migration命令時,它會創建數據庫的整個結構,我很害怕跑步是因為我不確定會發生什么變化。

這種行為正常嗎? 有什么辦法可以避免這種“初始遷移”或事先檢查這種遷移是否會導致數據庫出現任何問題?

謝謝。

這是正確的行為,EF Core 遷移應該能夠在空 DB上調用時創建完整的 DB 架構,因此 Add-Migration 會生成初始遷移,這將完全如此(所有現有的 EF4.7 遷移都不適用於您的 EFCore 6程序)。

同時,初始遷移將在現有數據庫上失敗,因為它已經擁有所有表/列/視圖。

解決方案如下:將代碼添加到遷移的開頭,以檢查其中一個表是否已存在:

  • 如果是,則 DB 結構已經匹配初始遷移,這里無事可做(只是存在)
  • 如果不是,這是空白數據庫,應該運行初始 EFCore 遷移。

這里如何檢查表是否存在於遷移中: https ://entityframeworkcore.com/knowledge-base/53473747/check-if-a-table-exists-using-ef-core-2-1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM