EF Core - relacionamento de muitos para muitos em uma classe
Relação Usuário-Amigo
Eu encontro uma resposta
Núcleo da estrutura de entidades: relacionamento muitos para muitos com a mesma entidade e tente assim.
Entidades:
public class User
{
public int UserId { get; set; }
public virtual ICollection<Friend> Friends { get; set; }
}
public class Friend
{
public int MainUserId { get; set; }
public User ManUser { get; set; }
public int FriendUserId { get; set; }
public User FriendUser { get; set; }
}
A API fluente:
modelBuilder.Entity<Friend>()
.HasKey(f => new { f.MainUserId, f.FriendUserId });
modelBuilder.Entity<Friend>()
.HasOne(f => f.ManUser)
.WithMany(mu => mu.Friends)
.HasForeignKey(f => f.MainUserId);
modelBuilder.Entity<Friend>()
.HasOne(f => f.FriendUser)
.WithMany(mu => mu.Friends)
.HasForeignKey(f => f.FriendUserId);
Quando eu adiciono migração, a mensagem de erro éNão é possível criar um relacionamento entre 'User.Friends' e 'Friend.FriendUser', porque já existe um relacionamento entre 'User.Friends' e 'Friend.ManUser'. As propriedades de navegação podem participar apenas de um único relacionamento.
O que devo fazer? Ou devo criar uma entidade FriendEntity: User?