实体框架6 - 外键问题 [英] Entity Framework 6 - foreign key issue

查看:73
本文介绍了实体框架6 - 外键问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下使用EF6的模型,我试图将ContentArticleHOAsubdivision实体链接到SubdivisionHOA:

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

public virtual ContentArticleHOA ContentArticleHOA {get;组; }
public virtual ICollection< SubdivisionHOA>分部HOA {get;组; }
}

public partial class SubdivisionHOA
{
public short Id {get;组; }
public string Name {get;组; }
[ForeignKey(TopTierDivisionHOA)]
public byte TopTierDivisionId {get;组; }

public virtual TopTierDivisionHOA TopTierDivisionHOA {get;组;
}

我收到错误:



外键组件SubdivisionId不是SubdivisionHOA类型上声明的属性。验证它没有被明确排除在模型中,并且它是一个有效的原始属性。



SubdivisionHOA中的'Id'属性我试图链接需要被命名为Id,因为这是数据库中实际列的名称,所以我不知道我需要做什么?



我已经尝试添加 [InverseProperty(Id)] 之前的 [ForeignKey] 属性,但得到相同的错误。

解决方案

基本上,EntityFramework中的外键使用情况似乎如下:

  public partial class ContentArticleHOAsubdivision 
{
public int Id {get;组; }

...

public virtual ICollection< SubdivisionHOA>细分组; }
}

public partial class SubdivisionHOA
{
public short Id {get;组; }

...

public int ContentArticleHOAsubdivisionId {get;组; }

[ForeignKey(ContentArticleHOAsubdivisionId)]
public virtual ContentArticleHOAsubdivision ContentArticleHOAsubdivision {get;组; }
}

根据你的代码,我已经丢弃了一些未知的东西。 / p>

I have the following model using EF6, where I'm trying to link a 'ContentArticleHOAsubdivision' entity to a '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; }
}

I get the error:

The foreign key component 'SubdivisionId' is not a declared property on type 'SubdivisionHOA'. Verify that it has not been explicitly excluded from the model and that it is a valid primitive property.

The 'Id' property in SubdivisionHOA I'm trying to link on needs to be named 'Id' as that's the name of the actual column in the database, so I'm not sure what I need to do?

I've tried adding [InverseProperty("Id")] before the [ForeignKey] attributes but get the same error.

解决方案

Basicly the foreign key usage in EntityFramework seems like this:

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

Just based on your code, and I have discard some unknown stuffs.

这篇关于实体框架6 - 外键问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆