EFCore отношения «многие ко многим» с одной и той же таблицей на концах - PullRequest
0 голосов
/ 28 февраля 2020

Я хочу отслеживать рефералов для пользователей. Есть два класса сущностей.

public class User
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Email { get; set; }
    public string Phone { get; set; }

    public ICollection<Referral> Referrals { get; set; }
    public ICollection<Referral> Referrees { get; set; }
}

public class Referral
{
    public long ReferrerId { get; set; }
    public long ReferreeId { get; set; }

    public virtual User Referrer { get; set; }
    public virtual User Referree { get; set; }
}

Я определил отношения между ними через свободный API при создании модели (для сущности Реферал)

builder.HasOne(r => r.Referrer).WithMany(u => u.Referrals).HasForeignKey(r => r.ReferrerId);
builder.HasOne(r => r.Referree).WithMany(u => u.Referrees).HasForeignKey(u => u.ReferreeId);

Но когда я пытаюсь добавить миграцию, я получить

Невозможно определить отношение, представленное свойством навигации «Referral.Referrer» типа «Пользователь». Либо настройте отношение вручную, либо игнорируйте это свойство с помощью атрибута [NotMapped] или с помощью EntityTypeBuilder.Ignore в OnModelCreating.

error.

What am Я делаю не так?

...