C# Cannot insert explicit value for identity column in table 'ServiceOrderReceipt' when IDENTITY_INSERT is set to OFF.
报错信息:
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对象就报错了