AspNet CORE-EF多对多连接到具有连接表的同一表

时间:2019-11-13 10:04:47

标签: c# entity-framework asp.net-core ef-core-2.2

使用EF Core 2.2.6时遇到问题。我有一个称为Player的实体,我想引用其他玩家列表,例如。例如朋友。

我正在使用Join表和名为FriendPlayer的实体进行操作。

public class FriendPlayer
    {
        public Guid PlayerId { get; set; }

        public Player Player { get; set; }

        public Guid FriendId { get; set; }

        public Player Friend { get; set; }
    }

并按以下方式配置

modelBuilder.Entity<FriendPlayer>()
  .HasOne(fp => fp.Friend)
  .WithMany(p => p.Friends);

在Player实体中,就是这样:

public ICollection<FriendPlayer> Friends { get; set; } = new List<FriendPlayer>();

问题是,当我尝试在两个播放器之间创建此新关系并将其保存时,我在两个ID属性中都为FriendPlayer实体使用了相同的Guid。我猜可能是同一类型的引用实体,但是在文档中找不到任何可以证实这一点的东西。每个具有多对多教程的教程都在join类中使用两个不同的实体,而不是同一类型,我认为这并不是一个例外,因为过去我已经解决了一些类似的情况。

谢谢您的建议。

0 个答案:

没有答案