實體框架端點多重性

database-design entity-framework

假設我在網球應用程序中有3個表(剝離刪除不相關的信息):

比賽

Id(PK)

火柴

Id(PK)

CompId(FK)

CourtAssignments

CompId(PK),(FK)

CourtNumber(PK)

MatchId(FK),(唯一)

描述以上內容:一場比賽由兩個人在球場上互相打網球組成。比賽由0到很多比賽組成。

在比賽期間,法院指派代表法院(在單一比賽期間,可以將0或1場比賽分配給法院)此外,單場比賽只能在單個球場號碼上進行,並且僅存在於單一比賽中。 (所以這兩個字段一起構成了CourtAssignment表的主鍵)

因此,CourtAssignment的MatchId字段始終是唯一的或無效的。

但是,從我的數據庫生成EF模型時。我的CourtAssignment Navigation Property與我的匹配的多樣性是*。這應該是0..1。

我使用的是Visual Studio 2010 beta 2(帶有.Net 4 beta 2和EF 4 beta 2)。

我一直在使用beta 1,只能將*更改為0..1。但是,現在已經更改為beta 2,因為它具有上線許可證(移植升級我的解決方案工作正常,但從頭開始重新編寫我的解決方案,我無法在沒有收到錯誤的情況下將更改*更改為0..1:

錯誤113:多重性在關係'CourtAssignments_MatchId_FK_Matches_Id'中的角色'CourtAssignments'中無效。由於Dependent Role屬性不是關鍵屬性,因此Dependent Role的多重性的上限必須為*。

如何將多重性更改為0..1?我知道這是可行的,因為我的舊解決方案繼續以這種方式工作。我似乎無法在設計器中進行更改,並在edmx文件中完全丟失。

注意:我意識到將MatchId更改為主鍵會產生正確的多樣性,但我需要我的主鍵是[CompId,CourtNumber]的組合,因為我需要能夠在哪個場上切換哪個匹配。顯然,它無法更改主鍵。

謝謝誰能提供幫助!

一般承認的答案

斯科特,這不是與你完全相同的情況,但它可能會有所幫助:

實體框架無法識別的唯一密鑰

我認為它可能是相關的 - 也許你已經在概念模型中暴露了FK cols?如果是這種情況,似乎你不能做1到0..1。



Related

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