通过一对多关系,我可以在创建新实体时使用导航属性。
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 似乎只是忽略了我的导航属性。
有了
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!;
}