EF核心:实体类型“用户”要求定义主键

时间:2020-10-10 13:33:30

标签: c# entity-framework-core

我正在尝试启动和运行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()”。

1 个答案:

答案 0 :(得分:4)

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

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

应该可以解决问题。