IDENTITY_INSERT 为 OFF,无法插入数据,
类似的错误,解决记录:
网上查了下,都是 Code First 模式下的解决方案,
如:在 DBContext 的 OnModelCreating 方法里面
// EntityFramework .NET Core modelBuilder.Entity<Project>().Property(t => t.Id).ValueGeneratedOnAdd(); //... // EntityFramework modelBuilder.Entity<Project>().Property(t => t.Id) .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
或:在实体类的定义里给 id 加注解如下
[DatabaseGenerated(DatabaseGeneratedOption.Identity)] public int Id { get; set; }
以上方法,在不采用各种模式的情况下,没有起作用,
最后发现,只要前端在给后端传json时,只要不传 id 这个字段就可以了,
然而手残地给传了给默认值 -1 。。。
其实本来就没有问题的(后端接受参数时是用类对象接收的,id默认会是0,这时Add方法正常,而给0以外的值时就会报错,无法给自增列赋值)