2013-06-12 33 views
1

爲了更好地說明問題後更新實體框架模型:將字段添加到以前的查找表僅

我有一個名爲與關鍵的急救措施表,我有RID的表稱爲需求。

以前我有一個查詢表,只是舉行一個AID和一個RID。

這很好,Action有一個導航屬性Requirements和Requirement有一個導航屬性Actions。

我在稱爲Requirement_Fulfillment的查找表中添加了一個名爲Weight的字段。

我從數據庫更新了模型。我運行了自定義工具。

該模型不顯示Requirement_Fulfillment表。這兩個表(Action和Requirement)仍然將對方視爲簡單的導航屬性。

任何人都知道我在做什麼錯了?

+0

也許愚蠢的問題,但你確定你是從正確的數據庫刷新? – Yuck

+0

是的,我應該注意到我對一些已更新沒有問題的表進行了其他小改動。 (即在一個表上改變了nvarchar的長度,並向另一個表中添加了一個字段) – SmashCode

回答

3

您曾經有一個映射,現在你有一個新的實體。

您可能必須刪除設計器中「操作」和「需求」之間的關係。然後從數據庫更新模型,並確保在Add選項卡的Tables分支中檢查查找表。然後,您應該有一個基於查找表的新實體,並且ActionRequirement實體將與該實體有關係(而不是直接映射到對方)。

如果查找表沒有顯示在更新嚮導中,您可以嘗試手動刪除對.edmx文件中表的任何引用。

+0

像魅力一樣工作。已刪除的關係。從數據庫更新。在添加屏幕上,選定的表(注意:查找表的名稱不可見)。關閉並保存模型。在.tt實體類文件上運行定製工具。謝謝 – SmashCode

0

我總是從我的模型中刪除表格,然後將它們添加回來以從數據庫中獲取最新更新;我認爲它是唯一可靠的方法(假設你首先使用DB)。 '從數據庫更新模型'並沒有做它的名字所暗示的。

+0

當你說刪除表時,你是指相互關聯的表嗎? – SmashCode

+0

所有這些,或只是那些如果你保持跟蹤改變的。製作一份你的EDMX文件,以防萬一 –

0

嘗試刷新表格或從設計器中刪除表格並重新添加它們。

相關問題