將列添加到DB表後,實體框架出現問題

asp.net c# entity-framework sql-server

我需要在我的數據庫中的表中添加一個新的NVARCHAR列。所以我添加了該列,然後啟動Visual Studio以更新Entity Framework的EDMX文件。

我在數據庫中運行了所有內容的更新模型,這只會導致“數據讀取器不兼容” - 錯誤。所以我在DB中重命名了整個表,從數據庫更新了EDMX,將表重命名為原始名稱,再次運行update,然後為所有受影響的存儲過程創建了新的函數導入。但我仍然得到同樣的錯誤:

數據讀取器與指定的'[Model]。[Entity]'不兼容。類型為“[Column]”的成員在數據讀取器中沒有相應的具有相同名稱的列。

我看了一下,如果數據庫和框架中的列名不同,這似乎是一個常見的錯誤。然而情況並非如此,它們具有相同的名稱。

我可以通過[Entity] .Context。[Column]訪問代碼中的列,所以我不太清楚數據閱讀器在抱怨什麼。

我的想法已經用完了,歡迎任何幫助。

一般承認的答案

事實證明EDMX很好,但由於一些奇怪的原因,設計師在我的項目中停止更新Designer.cs。

不得不進去並手動編輯它。


熱門答案

更新模型將替換存儲架構,但不會替換客戶端架構或映射。從“乾淨的平板”開始, 備份當前的EDMX ,然後以XML格式打開它。刪除對錶的所有引用,然後在圖形錯誤中關閉並打開。建立。如果您有任何錯誤(可能是已刪除表的已損壞鏈接),請修復它們。然後更新模型以重新添加表。



許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因