[MSSQL] [EntityFramework(.Net Core)] 自增长id字段,无法插入数据
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以外的值时就会报错,无法给自增列赋值)
作者:码路工人
公众号:码路工人有力量(Code-Power)
欢迎关注个人微信公众号 Coder-Power
一起学习提高吧~
![](https://gitee.com/Coding-Worker/picture/raw/master/2021-1-5/1609860559027-qrcode_for_gh_e1903e0c25a7_258.jpg)
posted on 2019-05-27 17:02 CoderMonkey 阅读(446) 评论(0) 编辑 收藏 举报