繁体   English   中英

实体框架6-外键问题

[英]Entity Framework 6 - foreign key issue

我有以下使用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; }
}

我得到错误:

外键组件'SubdivisionId'不是类型'SubdivisionHOA'的声明属性。 验证尚未将其显式排除在模型之外,并且它是有效的原始属性。

我要链接的SubdivisionHOA中的“ Id”属性需要命名为“ Id”,因为这是数据库中实际列的名称,所以我不确定该怎么做?

我试过在[ForeignKey]属性前添加[InverseProperty("Id")] ,但得到相同的错误。

基本上,EntityFramework中的外键用法如下所示:

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; }
}

仅基于您的代码,我已经丢弃了一些未知的东西。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM