2010-01-26 36 views
8

我有兩個表,ReportsVisualizationsReports有一個字段VisualizationID,它通過外鍵指向Visualization的同名字段。它還有一個在現場申報的獨特鑰匙。 VisualizationID不可爲空。這意味着關係必須是0..1 1,因爲Reports記錄必須有一個獨特的,不爲空Visualizations與它相關的記錄。唯一鍵未被實體框架識別

實體框架沒有以這種方式看到它。我收到以下錯誤:

Error 113: Multiplicity is not valid in Role 'Report' in relationship 'FK_Reports_Visualizations'. Because the Dependent Role properties are not the key properties, the upper bound of the multiplicity of the Dependent Role must be *.

這裏有什麼問題嗎?我如何讓EF認識到適當的關係多樣性?

回答

3

EF正在抱怨,因爲它聽起來像您正在使用FK關聯 - 這意味着VisualizationID是實體的一個屬性,並且也有一個可視化參考 - 而且您無法使用FK關聯執行此操作。

但是如果您使用獨立關聯 - 這意味着沒有VisualizationID屬性 - 您可以縮小基數。

因此,解決辦法是從實體刪除VisualizationID屬性,此時你需要繼續的地圖的關聯。

希望這有助於

亞歷

2

我只是偶然發現了同樣的問題 - 亞歷克斯,你的解釋是正確的在我的情況,但當然從概念模型取出FK列,我不再有能力稍後通過更改FK字段的值來切換我的相關對象......我必須恢復到舊的技巧才能做到這一點!

是否有計劃讓我們有我們的蛋糕,並與1〜0..1關係吃蛋糕,即能有FK領域呢?

格雷格

(附註:我會評論,但我的代表處是不夠高呢!)

+1

EF 4.0現在允許外國鍵映射爲屬性。 – 2010-02-28 11:56:31