使用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类中使用两个不同的实体,而不是同一类型,我认为这并不是一个例外,因为过去我已经解决了一些类似的情况。
谢谢您的建议。