实体框架核心多个外键相同的表错误

时间:2019-09-18 08:04:44

标签: c# entity-framework-core

我看了很多以前的文章,关于如何从同一张表中获得多个外键,但是即使我的代码似乎与这些文章相同,我也似乎无法使它起作用。据我所知,以下应该可以工作。

我的用户模型

public string Name{get;set;}
public ICollection<UserOwnership> Slaves { get; set; }  //Users this user owns
public ICollection<UserOwnership> Masters { get; set; }  //Users that own this user

我的用户所有权模型

public class UserOwnership
{
    public int Id { get; set; }
    public int MasterUserId { get; set; }
    public int SlaveUserId { get; set; }
    public virtual User Master { get; set; }
    public virtual User Slave { get; set; }
}

UserOwnership映射

public class UserOwnershipMapping : IEntityTypeConfiguration<UserOwnership>
    {
        public void Configure(EntityTypeBuilder<UserOwnership> builder)
        {
            builder.ToTable("UserOwnership");
            builder.HasKey(e => new { e.Id });

            builder.HasOne(e => e.Master).WithMany(e => e.Slaves).HasForeignKey(e => e.MasterUserId).OnDelete(DeleteBehavior.Restrict); // one master many slaves
            builder.HasOne(e => e.Slave).WithMany(e => e.Masters).HasForeignKey(e => e.SlaveUserId).OnDelete(DeleteBehavior.Restrict); // one slave many masters
        }
    }

我的错误:

Unable to determine the relationship represented by navigation property 'User.Slaves' of type 'ICollection<UserOwnership>'. Either manually configure the relationship, or ignore this property using the '[NotMapped]' attribute or by using 'EntityTypeBuilder.Ignore' in 'OnModelCreating'.

0 个答案:

没有答案