【问题标题】:Code First CTP4: How to map these two entitiesCode First CTP4:如何映射这两个实体
【发布时间】:2011-04-30 07:36:11
【问题描述】:

假设我有两个实体,Team 和 Match。在每场比赛中,有两支球队,主队和客队。一个球队可以有很多场比赛,但主队和客队只能有一支球队。有时球队是主队,有时同一支球队是客队。我只提供了每个类的基础知识:

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 Matches 并尝试对其进行映射,但我知道 HomeTeam 和 AwayTeam 不能具有相同的反向关系(类似那样)。

谢谢。

【问题讨论】:

    标签: .net entity-framework poco code-first ctp4


    【解决方案1】:

    这个怎么样?

    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; }
    }
    

    【讨论】:

    • 谢谢。虽然没有工作,但我仍然得到:“MyProject.Team”的导航属性“Matches”不能与“MyProject.Match”的导航属性“AwayTeam”和“HomeTeam”相反。如果您不知道,我正在尝试将相对较新的 Code First 方法(Microsoft 尚未成为 RTM)与 Entity Framework 结合使用。
    • 并删除以 HomeTeamId 和 AwayTeamId 结尾的“Id”? (离开主队和客队)
    • 删除“Id”结尾确实有效,但那是因为它首先是更正确的建模方式。您的参与引导我找到了整体解决方案,谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-28
    • 2012-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-03
    相关资源
    最近更新 更多