0

Error 6017: The NavigationProperty '(propertyname)' on the type '(typename)' is the source of a generated property '(otherpropertyname)' which conflicts with a member of the same name.錯誤6017:該類型的NavigationProperty「(PROPERTYNAME)」「(類型名稱)」是

OK源,我相當肯定我明白爲什麼我收到此錯誤信息,但它對我來說,如何解決這個問題並不明顯。

我有一個表salesreps鏈接到一個表territories與一個簡單的外鍵關係。 territories表通過自動化Feed進行更新,而salesreps表則通過我正在設計的網絡界面進行手動維護。

如果領土消失,我不想讓代表被刪除;我打算在用戶界面中突出顯示他們進行手動糾正操作,這些用戶界面正在構建爲需要區域分配的孤兒代表。

銷售代表是由一個只與給定地區唯一的ID定義的(我無法對此做任何事情,這種方式超出了我的控制範圍),如果某個地區被移除,我將外鍵ON DELETE行爲設置爲territoryID值爲空,並使列可以爲空。然後,我在salesreps表上創建了一個名爲territoryReferenceID的計算列,並將其設置爲isnull(territoryID, 0),並將其保留,並基於repIDterritoryReferenceID列創建了主鍵,因爲我無法創建可爲空的PK列(我仍然認爲這是不理想的,即使我明白爲什麼)。在數據庫中,這可以正常工作,並且如果以某種方式同時刪除具有相同repID的兩個區域(非常不可能),那麼我可以對主鍵違規錯誤進行陷阱。

將此映射到EF會給我提到上述錯誤。我不知道爲什麼EF有這個問題,我不知道如何讓問題消失。我想保持數據庫模式中設計的行爲。

我該如何解決這個問題?

回答

0

這裏是我落得這樣做:

我刪除的實體模型中的關係和導航性能,打算只是直接使用的密鑰ID。這工作,直到下一次我從數據庫更新模型,在那裏它重新引入了關係,並拋出了錯誤。

因此,我只用一個territoryID列(引用計算列)來查看數據,並創建了用於創建,修改和從視圖中刪除記錄的存儲過程。

This Works。這很醜陋,但這正是我試圖用EF節省時間的結果。

相關問題