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