2010-10-25 58 views
0

假设我有两个实体Team和Match。在每场比赛中,有两支球队,HomeTeam和AwayTeam。一支球队可以有多场比赛,但是HomeTeam和AwayTeam只能有一个球队。有时候Team是HomeTeam,有时候同样的Team是AwayTeam。我已经提供了每个类的基础知识:Code First CTP4:如何映射这两个实体

public class Team 
{ 
    public int TeamId { get; set; } 
    public string Name { get; set; } 
} 



public class Match 
{ 
     public int MatchId { get; set; } 
     public int HomeTeamId { get; set; } 
     public int AwayTeamId { get; set; } 
} 

我该如何映射这个?我想(与设置ICollection的比赛,并试图将其映射,但是我得到的HomeTeam和AwayTeam不能有相同的反向关系(类似的东西)。

感谢。

回答

0

这个怎么样?

public class Team 
{ 
    public int TeamId { get; set; } 
    public string Name { get; set; } 
    public List<Match> Matches {get; set;} 
} 

public class Match 
{ 
    public int MatchId { get; set; } 
    public Team HomeTeamId { get; set; } 
    public Team AwayTeamId { get; set; } 
} 
+0

谢谢。虽然没有工作,但我仍然得到:'MyProject.Team'的导航属性'Matches'不能与'MyProject.Match'的导航属性'AwayTeam'和'HomeTeam'相反。你不知道的情况下,我试图结合实体框架使用相对较新的Code First方法(它尚未成为Microsoft的RTM)。 – Buginator 2010-10-25 16:38:37

+0

和removi HomeTeamId和AwayTeamId结束的'Id'? (离开HomeTeam&AwayTeam) – 2010-10-25 16:45:24

+0

删除“Id”结尾确实奏效,但这是因为它是摆在首位的更正确的方式。您的参与引导我了解整体解决方案,谢谢。 – Buginator 2010-11-01 11:37:55