我试图使用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() 时,数据库不会更新 .

任何帮助解决这个问题将不胜感激 .