[EF]只要執行[從資料庫更新]就會導致EF執行異常

  • 126
  • 0

[EF]只要執行[從資料庫更新]就會導致EF執行異常

微軟EF的edmx是非常好用的存取db元件
不過,在實際的系統,常常會發生db的 table schema與EF的table schema差異很大的情況
一般情況下,大部分人的反應就是,在visual studio打開edmx檔案,並執行[從資料庫更新]即可

但是在偶爾的時候,一更新就會發生EF在專案中存取所有資料表都會有錯誤的情況
連重新compile都不會過!

這時候你在google上面常常是找不到任何解決辦法的(就算有也是很少)
因為這個是很冷門的問題!

建議的解決方式是:
用文字編輯器(例如notepad++)直接打開.edmx檔案,以及edmx底下任何你想要修改的資料表.cs(例如Member.partial.cs、Member.cs)
透過文字編輯器去修改成你要的內容,這樣子之後用visual studio打開的時候,你會發現
EF的table schema的狀態,已經是你想要的更新到最新的狀態,而且還可以正常compile!

當然用文字編輯器去改程式碼是很累人,不過這樣子是為了避免有時候edmx在執行[從資料庫更新]
的時候,visual studio偷偷的在背景作的一些修改專案的動作
所以,在非常的時候(例如:接手前人留下來的專案,但是他的edmx完全不能執行更新的情況下)
請還是使用文字編輯器吧!


參考資料:
工作經驗