簡體   English   中英

在數據庫遷移后更新實體框架 EDMX 模型

[英]Updating Entity Framework EDMX Models After Database Migration

我有一個問題,我使用實體框架數據庫優先方法生成了多個 EDMX 和模型,這些模型最初映射到遠程 SQL Server 2012 實例上的表/存儲過程。 現在我們已經遷移到 SQL Server 2016,每當我們嘗試通過添加新表、刷新模型等來更新這些 EDMX 模型時,更新向導就會無限期地凍結。

我已經就這個問題進行了一些研究,我看到有些人有幸更改了相關數據庫的兼容性級別,但如果可能,我們希望避免這種情況。 遷移后,服務器上所有數據庫的兼容性級別都設置為SQL Server 2016 (130) ,根據我們的 Microsoft 數據庫顧問,專門用於查詢優化目的。

我嘗試手動更改 EDMX 的 XML 內容中的ProviderManifestToken ,方法是將其從“2012”設置為“2016”,但這似乎會導致其他問題。 這樣做后,我收到此錯誤消息:

錯誤信息

其他可能有用的信息:

  • 使用 Visual Studio 2015
  • 實體框架版本 6.1.3

有沒有人有幸將他們的數據庫從 SQL Server 2012 遷移到 2016,同時保持到自動生成的實體框架模型的清晰映射? 似乎會有一個內置工具來清理 EDMX 以干凈地映射到 SQL Server 的新的和更新的實例。

我們最終找到的解決方案是通過轉到 SSMS 中的“屬性”>“選項”,將相關數據庫的Legacy Cardinality Estimation更改為ON 這使我們能夠在數據庫上將兼容性級別設置為 SQL Server 2016。

另外要注意的是,當通過 Visual Studio 中的更新向導更新這些模型時,這些模型似乎需要永遠更新; 我們最終讓向導運行了一夜,我們的一個數據庫的模型終於在大約 6 小時后完成了更新。 所以他們最終會完成更新,但不是在一個現實的時間框架內與某人一起工作。

在進行配置更改后,模型會立即更新,正如人們所期望的那樣。

提示我們進行此更改的問題可以在 Entity Framework 的 GitHub 頁面上找到 實體框架的貢獻者似乎並沒有發現他們的問題並將其移交給 SQL Server 團隊,但在發布此消息時尚未實施任何修復(據我所知)。

暫無
暫無

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

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