我正在尝试使用Entity Framework 4.1从我的MVC3控制器中的Edit操作插入/更新数据到表中,其中包含以下代码:
[HttpPost]
public ActionResult Edit(UserDetailsForm form)
{
try
{
if (ModelState.IsValid)
{
UserProfile up = cpctx.UserProfiles.Where(w => w.UserName.Equals(form.email)).SingleOrDefault();
if (up == null)
{
up = new UserProfile();
up.UserName = form.email;
up.FirstName = form.FirstName;
up.LastName = form.LastName;
ctx.UserProfiles.Add(up);
}
else
{
up.FirstName = form.FirstName;
up.LastName = form.LastName;
cpctx.Entry(up).State = EntityState.Modified;
}
ctx.SaveChanges();
return RedirectToAction("Index");
}
return View(form);
}
catch
{
return View(form);
}
}
对于新记录,一切正常,我在数据库中得到一个新行,更新时出现问题。代码执行没有任何异常,我可以在监视窗口中正确地看到up
中的值,但是,当执行ctx.SavesChanges()
时,数据库不会更新。
非常感谢您解决此问题的任何帮助。