【问题标题】:EF Core: The entity type 'User' requires a primary key to be definedEF Core:实体类型“用户”需要定义主键
【发布时间】:2021-01-25 08:37:18
【问题描述】:

我正在尝试启动并运行 EF Core,但它一直抱怨我的表需要主键。现在围绕这个问题的现有问题还没有为我解决。

型号:

public class User
{
    [Column("id")]
    public long Id { get; }
}

我已尝试添加[Key] 属性:

public class User
{
    [Key]
    [Column("id")]
    public long Id { get; }
}

我什至尝试使用选项添加 [Key] 属性:

[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]

经过所有尝试,我仍然收到此错误:

未处理的异常。 System.InvalidOperationException:实体类型“用户”需要定义主键。如果您打算使用无密钥实体类型调用“HasNoKey()”。

【问题讨论】:

  • 尝试给Id添加一个setter

标签: c# entity-framework-core


【解决方案1】:

您需要为您的属性定义一个 setter。这是因为 EF Core 在从 DB 加载数据时,会构造该类的对象,因此需要一个 setter 来设置属性。

public class User
{
    [Key]
    [Column("id")]
    public long Id { get; set; }
}

这应该可以解决问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-23
    • 2021-11-27
    • 2018-08-13
    • 2019-09-13
    • 1970-01-01
    • 2022-11-19
    • 2017-11-23
    相关资源
    最近更新 更多