實體框架 - “映射片段中的問題” - 錯誤。幫助我理解這個錯誤的解釋

entity-framework

錯誤3007:從第186,205行開始映射片段中的問題:非主鍵列[WheelID]在兩個片段中被映射到不同的概念側屬性 - 數據不一致是可能的,因為相應的概念側屬性可以是獨立修改。

我在網上發現了幾個描述這個錯誤的地方,但我根本就不理解它們。 (迷茫的笑臉在這裡)




這裡有一些非常重要的東西,我必須要失踪。你能解釋一下,以便我明白嗎?也許使用我下面的真實例子?

alt text http://i39.tinypic.com/2hppnoo.jpg

外鍵1:N Wheels.Id - > Slices.WheelId

我將它們添加到實體框架中,並且在Slices-entity中看不到WheelId。

替代文字http://i43.tinypic.com/287hq87.jpg

做一些解決方法(在將表添加到EF之前從db中刪除關係 - 然後重新創建它並更新EF)我設法讓WheelId保持在Slices中,但後來我得到了頂部提到的錯誤。

一般承認的答案

由於Slices.WheelId是FK,因此您無法在客戶端模型中公開它。但是,有很多方法可以獲得價值。

var wheelId = someSlice.Wheels.ID;

更新在EF 4中,您可以使用FK關聯而不是獨立關聯來完成此操作。


熱門答案

嘗試使用實體模型設計從實體集中刪除外部屬性列,它將解決您的問題

例如

我們有兩個表,一個是客戶 ,另一個是訂單 ,使用實體模型設計我們在客戶和訂單之間添加了關聯,當我們這樣做Ado.net實體框架時,我將向下面的表添加導航屬性。

與Customer.Orders一樣 - 此處的訂單是Order.Customer

一個 - 很多關係。

因此,我們需要從Order實體集中刪除名稱為CustomerId [Foreign key column]的屬性。

以供參考:

http://social.msdn.microsoft.com/forums/en-US/adodotnetentityframework/thread/2823634f-9dd1-4547-93b5-17bb8a882ac2/



Related

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