C# Cannot insert explicit value for identity column in table 'ServiceOrderReceipt' when IDENTITY_INSERT is set to OFF.
阿新 • • 發佈:2022-01-18
報錯資訊:
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物件就報錯了