如何按ID更新单个数据库记录

时间:2012-03-19 17:37:47

标签: c# asp.net-mvc database record

我一直在浏览ASP.Net MVC C#电影数据库教程,但一直试图做一些小的改动,以帮助了解什么位做什么。我将补充一点,我是一个初学者。

我有一个带有小表单和按钮的页面,当我填写表单并单击提交表单中的数据时,会更新数据库表中的预定记录。

在控制器代码中,如何指定单个记录?假设该表中只有一条记录,它会定期更新新信息吗?

我想这与代码中的这两行有关:

            db.Entry(data).State = EntityState.Modified;
            db.SaveChanges();

我只是不确定如何单独指定记录以便更新?记录将有一个ID号(例如ID将为“1”)。

将按原样进行更新的代码:

// POST: /Data/Update/

    [HttpPost]
    public ActionResult Update(Data data)
    {
        if (ModelState.IsValid)
        {
            db.Entry(data).State = EntityState.Modified;
            db.SaveChanges();
            return RedirectToAction("Index");
        }
        return View(data);
    }

1 个答案:

答案 0 :(得分:1)

EF需要知道要在数据库中更新哪一行。 如果未从请求绑定“ID”属性,则需要在代码中明确设置它:

    if (ModelState.IsValid)
    {
        data.Id = 1; //EF need to know which row to update in the database.
        db.Entry(data).State = EntityState.Modified;
        db.SaveChanges();
        return RedirectToAction("Index");
    }