IDENTITY_INSERT问题设置为OFF?: - /

ben*_*ndr 5 c# sql sql-server asp.net identity

我正在尝试将订单详细信息插入到我的数据库中,它一直在说:

当IDENTITY_INSERT设置为OFF时,无法在表'Orders'中为identity列插入显式值.

我想要做的只是将用户UserId插入UserId列,使用WebSecurity.CurrentUserId- 为什么这不起作用?

我有:

dbase.Execute("INSERT INTO Orders 
                 (UserId, OrderId, Status) 
               VALUES 
                 (@0, @1, @2)", 
               WebSecurity.CurrentUserId, 
               Session["OSFOID"], 
               "Confirmed");`
Run Code Online (Sandbox Code Playgroud)

所以,正如你所看到的,它非常简单.但是,为什么它不起作用?

我的表定义是:

表定义

Mar*_*ell 11

除非你做到身份插入(通过设置标识插入的能力那个表),你都不准碰该列-数据库拥有它.

要么简单地启用标识插入,要么:不要尝试插入UserId(让DB创建一个新的id).

根据在线图书,SET IDENTITY_INSERT:

SET IDENTITY_INSERT Orders ON
INSERT INTO Orders (UserId, OrderId, Status) VALUES (@0, @1, @2)
SET IDENTITY_INSERT Orders OFF
Run Code Online (Sandbox Code Playgroud)

但更有可能的是:如果这是Orders表格,那么身份是否应该开启OrderIdOrderId当然,因为你试图控制它,你仍然会遇到同样的问题.

  • @jase - 不,你没有.它显然不是相同的定义,否则你会得到相同的错误.一定有区别. (2认同)