实体框架不使用更新更新数据库中的数据

时间:2011-10-04 20:59:37

标签: asp.net-mvc-3 entity-framework-4

我正在尝试使用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()时,数据库不会更新。

非常感谢您解决此问题的任何帮助。

0 个答案:

没有答案