我正在学习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,而且都是。
答案 0 :(得分:1)
您的ID列需要在SQL Server的表中设置为Identity列。
另外,您应该在DB
:
using
数据上下文
using(var db = new DB())
{
db.Requests.InsertOnSubmit(request);
db.SubmitChanges();
return RedirectToAction("Index");
}
否则你就会把连接溢出到处;并且比早期构建的窗口创建更多内存泄漏(好吧,取决于您的流量;))