EFCore多对多关系,两端使用相同的表

时间:2020-02-28 20:20:56

标签: .net-core entity-framework-core many-to-many ef-core-3.1

我想跟踪用户的引荐。有两个实体类。

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; }
}

我在创建模型时(通过Referral实体)通过流利的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]”忽略此属性 属性,或使用“ OnModelCreating”中的“ EntityTypeBuilder.Ignore”。

错误。

我在做什么错了?

0 个答案:

没有答案