初步学习EF,在新表中插入数据时,报错:
SqlException: 不能将值 NULL 插入列 'ID',表 'TMC.dbo.ResInfo';列不允许有 Null 值。INSERT 失败。 语句已终止。
但是我的ID列并不为空,很奇怪。。。
后来才知道EF的DB first中如果该表为空,要设置一列为主键,并设置该列数据自增,也就是将标识规范设置为是。
具体解决方法:
如果你的首列并不是ID,而是其他具体有意义的字段,可以在实体类中创建一列,并设置为主键并自增
[Key] //主键
[DatabaseGenerated(DatabaseGeneratedOption.Identity)] //设置自增
//必须设置主键列为自增列,即标识规范,数据库也要对应设计好
public int ID { get; set; }
并在设计数据库时,给ID列设置标识规范,注意,表创建好以后标识规范就不能再修改了,也就是如果一张表没有设置标识规范,需要重新建表设置,设计表——选项——标识字段