Linq to SQL insert - ID不递增

时间:2012-05-15 13:51:55

标签: sql linq-to-sql

我正在学习MVC2,我正在尝试创建一个数据请求管理系统。有点像票务系统。一个简单的问题,在我的mvc控制器类中,我有一个后期创建

    [HttpPost]
    public ActionResult Create(Request request)
    {

        if (ModelState.IsValid)
        {
            try
            {
                // TODO: Add insert logic here
                var db = new DB();
                db.Requests.InsertOnSubmit(request);

                db.SubmitChanges();
                return RedirectToAction("Index");
            }
            catch
            {
                return View(request);
            }

        }
        else
        {
            return View(request);
        }

    }

好的,这非常简单,我添加了我的视图,一旦我创建了一行,我首先在主键行中得到0。然后它不会再增加,我转到添加另一行,然后catch返回到我所在的同一视图。似乎主键int id没有递增。

如何自动增加id(类型为int)?我有点困惑为什么MVC没有处理它,因为它是主键类型int。它只会使第一行的id = 0,而且都是。

1 个答案:

答案 0 :(得分:1)

您的ID列需要在SQL Server的表中设置为Identity列。

另外,您应该在DB

中创建using数据上下文
using(var db = new DB())
{
  db.Requests.InsertOnSubmit(request); 

  db.SubmitChanges(); 
  return RedirectToAction("Index"); 
}

否则你就会把连接溢出到处;并且比早期构建的窗口创建更多内存泄漏(好吧,取决于您的流量;))