具有多对多关系的导航属性

问题描述 投票:0回答:1

通过一对多关系,我可以在创建新实体时使用导航属性。

public class Team
{
    [Key]
    public Guid Guid { get; set; }
    public List<Player>? Players { get; set; } = null!;
}

public class Player
{
    [Key]
    public Guid Guid { get; set; }
    public Guid TeamGuid { get; set; }
    [ForeignKey(nameof(TeamGuid))]
    public Team? Team { get; set; } = null!;
}

这很好,因为我只需指定

Player
键即可将
Team
添加到
Team
。但是,我无法将这种方法扩展到多对多关系。例如,我尝试过这个:

public class Team
{
    [Key]
    public Guid Guid { get; set; }
    public List<Guid>? PlayerGuids { get; set; } = null!;
    [ForeignKey(nameof(PlayerGuids))]
    public List<Player>? Players { get; set; } = null!;
}

public class Player
{
    [Key]
    public Guid Guid { get; set; }
    public List<Guid>? TeamGuids { get; set; } = null!;
    [ForeignKey(nameof(TeamGuids))]
    public List<Team>? Teams { get; set; } = null!;
}

EF Core 似乎只是忽略了我的导航属性。

entity-framework-core ef-core-3.1
1个回答
0
投票

有了

EF-Core 6+
,就很简单了,就像这样:

public class Team
{
    public Guid Id { get; set; }

    public List<Player>? Players { get; set; } = null!;
}

public class Player
{
    public Guid Id { get; set; }

    public List<Team>? Teams { get; set; } = null!;
}
© www.soinside.com 2019 - 2024. All rights reserved.