Сначала код Entity Framework - два внешних ключа из одной таблицы

Сначала я только начал использовать код EF, так что я новичок в этой теме.

Я хотел создать отношения между командами и совпадениями:

1 совпадение = 2 команды (дома, в гостях) и результат.

Я подумал, что такую ​​модель легко создать, поэтому я начал кодировать:

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

    public virtual ICollection<Match> Matches { get; set; }
}


public class Match
{
    [Key]
    public int MatchId { get; set; }

    [ForeignKey("HomeTeam"), Column(Order = 0)]
    public int HomeTeamId { get; set; }
    [ForeignKey("GuestTeam"), Column(Order = 1)]
    public int GuestTeamId { get; set; }

    public float HomePoints { get; set; }
    public float GuestPoints { get; set; }
    public DateTime Date { get; set; }

    public virtual Team HomeTeam { get; set; }
    public virtual Team GuestTeam { get; set; }
}

И я получил исключение:

Ссылочная связь приведет к циклической ссылке, которая не разрешена. [Constraint name = Match_GuestTeam]

Как я могу создать такую ​​модель с двумя внешними ключами для одной и той же таблицы?

252
задан jkdev 6 August 2019 в 23:23
поделиться