我正在尝试启动和运行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()”。
答案 0 :(得分:4)
您需要为属性定义一个setter。这是因为当EF Core从数据库加载数据时,它会构造该类的对象,因此需要使用setter来设置属性。
public class User
{
[Key]
[Column("id")]
public long Id { get; set; }
}
应该可以解决问题。