2017-09-12 55 views
0

我正在使用基於數據庫優先的方法構建的使用EF 6的項目。有幾個表格先前具有映射到複雜類型的相同3個屬性(在代碼中的多個位置使用)。這些屬性被指定爲「外鍵」列,儘管它們的父子關係從未在數據庫中定義過。實體框架6將現有的複雜類型添加到關鍵列

最近,一名合作者在SQL Server中完成並正式定義了FK和它們的父表之間的關係。我現在試圖更新實體模型(從數據庫更新),並且新的關聯沒有出現。我已經採取從模型中刪除表並重新添加它們。他們現在顯示正確的關聯。

但是,到複雜類型的映射消失了。當我嘗試添加它時,更新後的映射將銷燬這些屬性的關聯(保存時出現模型錯誤)。我知道複雜類型不支持關聯。

建議您在將列重新映射到複雜類型之前先刪除列的關聯?即使列在實體上不可見,EF是否會觀察到基礎密鑰關係?

回答

0

儘管我仍然希望得到關於我的問題的一些反饋,但這是我爲解決問題所做的。

1)從數據庫中刪除並重新添加表格時,刪除了由EF生成的關聯。請注意,這些關係僅適用於要由複雜類型替換的外鍵字段。

2),隨後在MS步驟(實測here)重構所需的關鍵特性的複雜類型

3)可選:有必要對我來說,以除去一些揮之不去的直接編輯EDMX爲XML不能用設計師修復的關聯

到目前爲止,我的模型按照預期運行。我相信在CRUD操作中會觀察到FK關係。