实体框架 - 外键组件...不是类型的声明属性

时间:2014-07-13 08:35:28

标签: c# entity-framework entity-framework-6

我收到此错误:

外键组件' SubdivisionHOAId'不是类型' SubdivisionHOA'的声明属性。验证它是否未从模型中明确排除,并且它是有效的原始属性。

这是我的模特。我不明白我需要做什么,因为我的理解是如果我已经指定了[ForeignKey(" SubdivisionsHOA")],它指的是同一类中的导航属性,因此,它不应该尝试链接“Id' Id'细分HOA?我几个小时都在努力解决这个问题:

public partial class ContentArticleHOAsubdivision
{
    public int Id { get; set; }
    [ForeignKey("ContentArticleHOA")]
    public long ContentArticleId { get; set; }
    [ForeignKey("SubdivisionsHOA")]
    public short SubdivisionHOAId { get; set; }

    public virtual ContentArticleHOA ContentArticleHOA { get; set; }
    public virtual ICollection<SubdivisionHOA> SubdivisionsHOA { get; set; }
}

public partial class SubdivisionHOA
{
    [Key, ForeignKey("TopTierDivisionHOA")]
    public short Id { get; set; }
    public string Name { get; set; }

    public virtual TopTierDivisionHOA TopTierDivisionHOA { get; set; }
}

2 个答案:

答案 0 :(得分:1)

尝试此操作,在您的案例SubdivisionHOA中添加相关实体类型的属性,并将外键属性添加到该属性

public partial class ContentArticleHOAsubdivision
{

    public short SubdivisionHOAId { get; set; }

    [ForeignKey("SubdivisionsHOAId")]    
    public virtual SubdivisionHOA SubdivisionHOA {get;set;}

}

答案 1 :(得分:0)

到目前为止,您已经解决了这个问题,但对于遇到同样问题的任何人来说,解决方法就是解决方案。

ForeignKey属性属性应该在您的其他类SubdivisionHOA

您的ContentArticleHOAsubdivision类有一个SubdivisionHOA列表,您无需在值列表中添加外键。您将ForeignKey属性添加到具有一个(一对多关系)关系的类中。理想情况下,您的类应该是这样的

    public partial class ContentArticleHOAsubdivision
{
    public int Id { get; set; }
    [ForeignKey("ContentArticleHOA")]
    public long ContentArticleId { get; set; }

    public virtual ContentArticleHOA ContentArticleHOA { get; set; }
    public virtual ICollection<SubdivisionHOA> SubdivisionsHOA { get; set; }
}

public partial class SubdivisionHOA
{
    [Key, ForeignKey("TopTierDivisionHOA")]
    public short Id { get; set; }
    public string Name { get; set; }

     [ForeignKey("ContentArticleHOAsubdivision")]
    public short ContentArticleHOAsubdivision{ get; set; }

    public virtual TopTierDivisionHOA TopTierDivisionHOA { get; set; }
}