C# 自引用实体框架错误

C# 自引用实体框架错误,c#,entity-framework,.net-core,C#,Entity Framework,.net Core,我有一个字段Organization.RemappedOrganization,它映射到数据库中的Organization.Recno。当我尝试使用组织对象时,我得到一个错误: InvalidOperationException:无法调用实体类型“Organization”上的属性“RemappedOrganization”的属性,因为该属性已配置为导航属性。属性只能用于配置标量属性 我猜我没有在实体框架中正确设置它。。。但不知道怎么做 public class Organization {

我有一个字段
Organization.RemappedOrganization
,它映射到数据库中的
Organization.Recno
。当我尝试使用
组织
对象时,我得到一个错误:

InvalidOperationException:无法调用实体类型“Organization”上的属性“RemappedOrganization”的属性,因为该属性已配置为导航属性。属性只能用于配置标量属性

我猜我没有在实体框架中正确设置它。。。但不知道怎么做

public class Organization
{
    [Key]
    public int? Recno { get; set; }
    public string OrganizationName { get; set; }
    public bool PermanentlyDisplay { get; set; }
    [ForeignKey("RemappedOrganization")]
    public virtual Organization RemappedOrganization { get; set; }
    public DateTime? DateAdded { get; set; }
}

modelBuilder.Entity<Organization>().ToTable("Organization")
            .HasIndex(p => new { p.OrganizationName }).IsUnique();
公共类组织
{
[关键]
公共int?Recno{get;set;}
公共字符串OrganizationName{get;set;}
公共bool永久显示{get;set;}
[外国钥匙(“重新包装组织”)]
公共虚拟组织重新外观组织{get;set;}
公共日期时间?已添加日期{get;set;}
}
modelBuilder.Entity().ToTable(“组织”)
.HasIndex(p=>new{p.OrganizationName}).IsUnique();

由于未正确配置以下属性,因此出现错误:

[ForeignKey("RemappedOrganization")]
您正在使用
ForeignKey
属性装饰导航属性,并指定与属性值相同的属性

您有两个选项来修复错误:

  • 删除该属性并让EF为您生成外键列
  • 在实体中添加新属性
    RemappedOrganizationId
    (必须是标量属性),并将该属性名称用作
    ForeignKey
    的值