实体框架6错误-没有定义密钥

本文关键字:定义 密钥 框架 错误 实体 | 更新日期: 2023-09-27 18:12:10

编译器中出现以下错误:

MySite.DAL.ContentArticleSubdivision: : EntityType 'ContentArticleSubdivision' has no key defined. Define the key for this EntityType.
ContentArticleSubdivision: EntityType: EntitySet 'ContentArticleSubdivision' is based on type 'ContentArticleSubdivision' that has no keys defined.
但是,我已经像这样定义了ContentArticleSubdivision:
public partial class ContentArticleSubdivision
{
    public long ContentArticleId { get; set; }
    public int SubdivisionId { get; set; }
    public virtual ICollection<Subdivision> Subdivisions { get; set; }
}

其中ContentArticleId是一个指向'ContentArticle'的外键,定义如下:

public partial class ContentArticle
{
    [KeyAttribute] /* needed for FreeTextSearch class - if used */
    public long Id { get; set; }

我的理解是,因为我已经以<LinkedEntityTypeName><PrimaryKeyField>的形式命名了我的外键属性,即我有属性ContentArticleId,其中链接到'ContentArticle'模型中定义的'Id', EF将理解ContentArticleId应该是外键。我错过了什么?

实体框架6错误-没有定义密钥

Entity在任何表上都需要一个主键,向错误中提到的特定表添加一个主键应该可以解决这个问题。