0

我正在学习 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 的第一行,仅此而已。

4

1 回答 1

1

您的 ID 列需要设置为 SQL server 表中的标识列。

您还应该DB在以下位置创建数据上下文using

using(var db = new DB())
{
  db.Requests.InsertOnSubmit(request); 

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

否则你会到处乱接连接;并且比早期构建的 Windows 产生更多的内存泄漏(嗯,取决于你的流量;))

于 2012-05-15T13:57:17.963 回答