Entity framework 实体框架端点多重性

Entity framework 实体框架端点多重性,entity-framework,database-design,Entity Framework,Database Design,假设我在网球应用程序中有3张桌子(删除无关信息): 比赛 Id(主键) 比赛 Id(主键) CompId(FK) 法庭分配 CompId(主键),(FK) 法院编号(PK) 匹配ID(FK),(唯一) 要描述上述情况: 一场比赛由两个人在球场上互相打网球组成。 比赛由0到多场比赛组成 球场分配代表比赛期间的一个球场(在一场比赛中,可以为一个球场分配0场或1场比赛)。此外,一场比赛只能在一个球场编号上进行,并且只存在于一场比赛中。(因此,这两个字段一起构成CourtAssignment表的主键)

假设我在网球应用程序中有3张桌子(删除无关信息):

比赛 Id(主键)

比赛 Id(主键)

CompId(FK)

法庭分配 CompId(主键),(FK)

法院编号(PK)

匹配ID(FK),(唯一)

要描述上述情况: 一场比赛由两个人在球场上互相打网球组成。 比赛由0到多场比赛组成

球场分配代表比赛期间的一个球场(在一场比赛中,可以为一个球场分配0场或1场比赛)。此外,一场比赛只能在一个球场编号上进行,并且只存在于一场比赛中。(因此,这两个字段一起构成CourtAssignment表的主键)

因此,CourtAssignment的MatchId字段将始终是唯一的或空的

但是,当从我的数据库生成EF模型时。my CourtAssignment导航属性与my Match的多重性为*。这应该是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\u MatchId\u FK\u Matches\u Id”中的角色“CourtAssignments”中无效。由于从属角色属性不是关键属性,因此从属角色的多重性上限必须为*

问题: 如何将多重性更改为0..1?我知道这是可行的,因为我的旧解决方案仍以这种方式工作。我似乎无法再在设计器中进行更改,而完全迷失在edmx文件中

注意:我意识到将MatchId更改为主键将生成正确的多重性,但我需要我的主键是[CompId,CourtNumber]的组合,因为我需要能够动态切换哪个匹配在哪个球场上。显然,更改主键不起作用


感谢所有能够提供帮助的人!

斯科特,这与您的情况不同,但可能会有所帮助:

我认为这可能是相关的-也许你已经在概念模型中暴露了FK cols?如果是这样的话,你似乎不能做1到0..1