编程语言
首页 > 编程语言> > C# Cannot insert explicit value for identity column in table 'ServiceOrderReceipt' when ID

C# Cannot insert explicit value for identity column in table 'ServiceOrderReceipt' when ID

作者:互联网

报错信息:

 Cannot insert explicit value for identity column in table 'Order' when IDENTITY_INSERT is set to OFF.

分析:

报错解析:不能往Order表的自增字段插入值
通常情况下,不能向 SQL Server 自增字段插入值,如果非要这么干的话,SQL Server 就会好不客气地给你个错误警告:

Server: Msg 544, Level 16, State 1, Line 1  
Cannot insert explicit value for identity column in table 't' when identity_insert is set to OFF. 

这个错误消息提示我们,如果向 SQL Server 自增字段插入值,需要设置 identity_insert 选项为 on。
注意的是,自增字段插入值后,要及时把 identity_insert 设置为 off。
或者写插入语句时不要把自增的ID加入进去。

LINQ错误案例

此Order表以Id为自增索引

  var order=new Order()
     {
        Id=1,
        Title="百香果"
     }  

以上错误:不能给自增的Id字段赋值

  var order=new Order()
     {
        Title="百香果"
     } 
  ctx.Order.Add(order)
 //后面一堆逻辑代码后,又加了一个添加代码
  ctx.Order.Add(order)

以上也是报错,因为添加一次后,Id已经存在了,又添加同一个order对象就报错了

标签:insert,ServiceOrderReceipt,set,order,报错,Server,Order,identity
来源: https://www.cnblogs.com/qingheshiguang/p/15817195.html