首页 > 解决方案 > 使用 ASP.NET Core 3.1 和 Entity Framework 进行初始迁移时,出现错误“实体类型 'X' 需要定义主键”

问题描述

使用 ASP.NET Core 3.1 和 Entity Framework 进行初始迁移时,我收到错误“实体类型 'X' 需要定义主键”。

public class Command
{
    [Key]
    private int _id;
    public int CommandId { get { return _id; } set { _id = value; } }
    public string HowTo { get; set; }
    public string Line { get; set; }
    public string Platform { get; set; }
}

标签: entity-frameworkasp.net-corekey

解决方案


我只是在猜测-但我认为您想使用CommandIdas 键-对吗?

[Key]如果是这样,那么您需要使用 =注释来装饰该属性- 如下所示:

public class Command
{
    private int _id;

    [Key]
    public int CommandId { get { return _id; } set { _id = value; } }

    public string HowTo { get; set; }
    public string Line { get; set; }
    public string Platform { get; set; }
}

或者只是关闭该注释 - 一个名为Id(EntityName)Id将自动用作主键的属性 - 并CommandId匹配第二个模式以获得自动识别的主键属性。


推荐阅读