首頁 > 資料庫 > mysql教程 > 為什麼 EF Core 的「更新資料庫」會因為現有資料庫物件而失敗,如何修復?

為什麼 EF Core 的「更新資料庫」會因為現有資料庫物件而失敗,如何修復?

DDD
發布: 2024-12-21 14:53:11
原創
939 人瀏覽過

Why Does EF Core's `Update-Database` Fail Due to Existing Database Objects, and How Can I Fix It?

由於資料庫中存在對象,EF Core 的更新資料庫失敗

在使用Entity Framework Core 的ASP.Net Core 中,嘗試更新資料庫可能會失敗並出現錯誤,指示資料庫中已存在同名的物件。如果在使用命令列更新資料庫後手動更新資料庫,則會出現此錯誤。

通常建議的解決方案是使用“Add-migration 'Reset' -IgnoreChanges”命令,如John 所概述薩勒夫斯基.但是,由於EF Core 中缺少-IgnoreChanges 參數,此方法可能會失敗。

解決方案:

要解決此問題,請按照以下步驟操作:

  1. 註解掉()方法:

    • 找到與手動資料庫變更相關的遷移檔案。
    • 註解掉該遷移檔案的 Up() 方法中的所有程式碼。
  2. 應用遷移:

    • 運行以下命令:

      Add-Migration Initialization
      Update-Database
      登入後複製

此程序將建立目前資料庫狀態。未來的遷移將僅包含在此基線之後所做的變更。

  1. 新增變更回:

    • 如有必要,還原任何手動資料庫變更並建立新的遷移檔案以合併增量模型更改。
    • 將第二個遷移加入

透過註解掉Up() 方法,EF Core 保留目前資料庫架構並避免與現有物件發生衝突。一旦應用基線遷移,後續遷移就可以安全地引入新的更改,確保無縫更新過程。

以上是為什麼 EF Core 的「更新資料庫」會因為現有資料庫物件而失敗,如何修復?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板