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

por*_*89 11 c# sql asp.net linq-to-sql asp.net-mvc-2

每当我尝试通过表单将数据提交到此数据库时,我都会抛出此异常: -

  • 例外

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

但是,表单没有字段,因此数据可以进入标识列(PK),因此我不知道为什么会出现这种情况.

目前我正在使用标准的asp.net mvc提交按钮,但我最终将它链接到一个jquery对话框按钮

ClientNo列是异常所指的列,具有以下属性

  • 名称 - ClientNo
  • type - int
  • NULLS - 没有
  • 身份规范 - 是的
  • 是身份 - 是的
  • 增量 - 1
  • 种子 - 1

ClientNo有900以后的数据等

当客户端表单没有在表单中输入数据时,也会抛出此异常

它抛出在DataCOntext.SubmitChanges()方法上

[AcceptVerbs(HttpVerbs.Post)]
        public ActionResult Create1(ClientDetail client)
        {
            if(ModelState.IsValid)
            { 
            client = new ClientDetail();



                UpdateModel(client);
                //Debug Code
                System.Diagnostics.Debug.WriteLine("AddNewClient Create1");
                repo.AddNewClient(client);
                //Debug Code
                System.Diagnostics.Debug.WriteLine("Save Create1");


                // System.Data.SqlClient.SqlException thrown at this line  
                repo.Save();

                //Debug Code - never reached
                System.Diagnostics.Debug.WriteLine("Saved Changes");


              //  return RedirectToAction("Details", new { id = client.ClientNo });




            }
            return View(client);
        }

public void AddNewClient(ClientDetail client)
       {    
            System.Diagnostics.Debug.WriteLine("Start Insert On Submit");

            db.ClientDetails.InsertOnSubmit(client);
            System.Diagnostics.Debug.WriteLine("Finish Insert On Submit");
       }

public void Save()
        {
            System.Diagnostics.Debug.WriteLine("In Save Method");
            db.GetChangeSet();
            System.Diagnostics.Debug.WriteLine("Got ChangeSet"); 
            db.SubmitChanges();
            System.Diagnostics.Debug.WriteLine("Exit Save Method");
        }
Is this the query everyone is talking about

[Column(Storage="_ClientNo", DbType="Int NOT NULL", IsPrimaryKey=true, UpdateCheck=UpdateCheck.Never)]
        public int ClientNo
        {
            get
            {
                return this._ClientNo;
            }
            set
            {
                if ((this._ClientNo != value))
                {
                    this.OnClientNoChanging(value);
                    this.SendPropertyChanging();
                    this._ClientNo = value;
                    this.SendPropertyChanged("ClientNo");
                    this.OnClientNoChanged();
                }
            }
        }
Run Code Online (Sandbox Code Playgroud)

有没有人知道为什么会发生这种情况的解决方案或原因?

谢谢

arc*_*hil 8

将IsDbGenerated = true添加到ClientNo属性

[Column(Storage="_ClientNo", DbType="Int NOT NULL", **IsDbGenerated=true,** IsPrimaryKey=true, UpdateCheck=UpdateCheck.Never)] 
public int ClientNo
Run Code Online (Sandbox Code Playgroud)