我使用EF6有以下模型,我试图链接一个' ContentArticleHOAsubdivision'实体到' SubdivisionHOA':
public partial class ContentArticleHOAsubdivision
{
public int Id { get; set; }
[ForeignKey("ContentArticleHOA")]
public long ContentArticleId { get; set; }
[ForeignKey("SubdivisionsHOA")]
public short SubdivisionId { get; set; }
public virtual ContentArticleHOA ContentArticleHOA { get; set; }
public virtual ICollection<SubdivisionHOA> SubdivisionsHOA { get; set; }
}
public partial class SubdivisionHOA
{
public short Id { get; set; }
public string Name { get; set; }
[ForeignKey("TopTierDivisionHOA")]
public byte TopTierDivisionId { get; set; }
public virtual TopTierDivisionHOA TopTierDivisionHOA { get; set; }
}
我收到错误:
外键组件&#39; SubdivisionId&#39;不是类型&#39; SubdivisionHOA&#39;的声明属性。验证它是否未从模型中明确排除,并且它是有效的原始属性。
&#39; Id&#39; SubdivisionHOA中的财产我想尝试链接,需要命名&#39; Id&#39;因为它是数据库中实际列的名称,所以我不确定我需要做什么?
我已尝试在[InverseProperty("Id")]
属性之前添加[ForeignKey]
,但会收到相同的错误。
答案 0 :(得分:1)
基本上,Entity Framework中的外键使用情况如下:
public partial class ContentArticleHOAsubdivision
{
public int Id { get; set; }
...
public virtual ICollection<SubdivisionHOA> SubdivisionsHOAs { get; set; }
}
public partial class SubdivisionHOA
{
public short Id { get; set; }
...
public int ContentArticleHOAsubdivisionId { get; set; }
[ForeignKey("ContentArticleHOAsubdivisionId")]
public virtual ContentArticleHOAsubdivision ContentArticleHOAsubdivision { get; set; }
}
只是基于你的代码,我丢弃了一些未知的东西。