2009-04-27 54 views
3

我有一個相當大的DB連接到我的實體框架。我有一組特定的表格,其中從設計中刪除了一個公用密鑰(fk)。當我「從數據庫更新模型」時,我得到了一系列關於這個現在缺少的關鍵的錯誤。實體框架:更改表格(關鍵更改)

爲什麼更新過程無法準確檢測到該密鑰已被刪除?另外,如果我手動從模型中刪除屬性,我最終會遇到其他錯誤。我還試圖簡單地刪除表並重新添加它,但是現在表並未顯示在更新嚮導的「添加」部分中。

因此,短缺刪除整個事情,並重新開始,有沒有什麼辦法可以正常恢復? EF團隊是否已經發布了此嚮導的任何新版本,並且已經修復了其中的一些問題?

回答

5

實體框架不時會感到困惑。你需要做的是從模型中刪除實體表,然後將SQL Server中的表重命名爲TableName_Temp,刷新模型,現在實體表應該是OK,所以再次刪除實體表將其重命名爲原始名稱,再次刷新模型。這一次應該沒問題。

我知道這是一個搞砸的過程,但這是我發現解決這個問題的唯一途徑,不用吹走整個edmx並從頭開始。目前在我的組織中,我們有一項政策,不必對EDMX進行更改,除非絕對必要,以便我們可以在沒有任何問題的情況下刪除和重新創建。

希望這會有所幫助!

+0

這不是對再生過程的悲傷評論嗎?公司的規則是不允許edmx更改? MS應該真的爲人們解決這個難題。 – 2009-12-28 03:08:52