將實體模型(edmx)重新添加時,表格不顯示

edmx entity-framework entity-model

我有一個包含5個表的數據庫。一開始,我已經添加了這些表,但後來由於某些關係編譯錯誤而決定刪除一些。

現在,當我想要添加它們時,我正在打開edmx文件 - >從數據庫更新模型...我沒有在添加選項卡下看到這些表,而只是在“刷新”選項卡下。

我該如何添加它們?

一般承認的答案

要將表重新添加到模型中,首先需要從模型中刪除表。 (表格列表在[model.Store]樹中可見(參見“ 模型瀏覽器 ”窗格 - 您可以從右鍵單擊菜單打開它。)當您運行“從數據庫更新模型...”時,表格將會顯示出現在“更新嚮導”第一步的“添加”選項卡中。

完成步驟:

  1. 在Visual Studio中關閉您的模型。
  2. 在文本編輯器中打開.edmx文件。
  3. 搜索並刪除xml實體元素(請參閱下面的註釋)。
  4. 在Visual Studio中打開您的模型。
  5. 單擊從數據庫更新模型。

要刪除模型中對錶的所有引用:

  • 在“EntityContainer”元素中,刪除將“Name”屬性設置為值[TableNameToReAdd]的所有“EntitySet”子元素。
  • 在'EntityContainer'元素中,刪除所有'AssociationSet'子元素,其中存在'End'元素,其'EntitySet'屬性設置為值[TableNameToReAdd]。
  • 在“EntityContainer”元素中,刪除所有“EntityType”子元素,其中“Name”屬性設置為值[TableNameToReAdd]。
  • 在'EntityContainer'元素中,刪除所有'Association'子元素,其中存在'End'元素,其'Role'屬性設置為值[TableNameToReAdd]。

熱門答案

我讀了這個和其他搜索選項,但最後我找到了另一個回答,幫助我縮短了這個問題。

從錯誤消息看起來您的某個表/視圖沒有主鍵。 EF需要每個表都有一個主鍵才能生成實體密鑰。您仍然可以運行您的應用程序,但我強烈建議您按警告添加主鍵。

鏈接解決了我的問題。

更新

如果某些時候你做得很好,仍然沒有反映更改添加新列或更改數據類型。

這個嘗試手動更新的最好方法,仍然沒有希望,然後按照@mathijsuitmegen的建議,刪除並添加表,但這是首選的選項。



Related

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