在跟着教程结合类TodoItem和TodoContext类对控制器进行构建的时候,出现了报错:
Error: the entity type requires a primary key
在我的代码里把这两个类分别换成了User和UserContext两个类。
其中,我在User类中写了如下代码:
private long id {get; set;}
private string name{get; set;}
private string password{get; set;}
private string salt{get; set;}
private DateTime registration_time{get; set;}
private string sex{get; set;}
该错误的解释为:实体(User)无主键
我尝试在private long id {get; set;}
这句上面添加[key]
表示声明id
字段为该user中的主键。
然而此错依然没有消失。
通过实验发现,因为private long id {get; set;}
为一个方法,我将这个方法声明成了私有方法,导致报错,与主键是否存在无关。【详细原因还在思考】
所以我按照java
的书写风格对该代码进行了更改:
private long id;
private string name;
private string password;
private string salt;
private DateTime registration_time;
private string sex;
public long Id { get => id; set => id = value; }
public string Name { get => name; set => name = value; }
public string Password { get => password; set => password = value; }
public string Salt { get => salt; set => salt = value; }
public DateTime Registration_time { get => registration_time; set => registration_time = value; }
public string Sex { get => sex; set => sex = value; }
是c#语法不熟悉导致的傻逼问题。