Как обновить отдельную запись базы данных по идентификатору - PullRequest
1 голос
/ 19 марта 2012

Я пробежался по учебному пособию по базе данных фильмов ASP.Net MVC C #, но пытался внести несколько незначительных изменений, чтобы понять, какие биты делают и что делают. Я добавлю, что я абсолютный новичок.

У меня есть страница с маленькой формой и кнопкой, когда я заполняю форму и нажимаю кнопку отправить данные в форму, обновляет предварительно определенную запись в таблице базы данных.

В коде контроллера как указать отдельную запись? Предполагая, что в таблице будет только одна запись, которая будет периодически обновляться с новой информацией?

Полагаю, это как-то связано с двумя строками в коде:

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

Я просто не уверен, как указать запись индивидуально, чтобы она обновлялась? Запись будет иметь идентификационный номер (например, идентификатор будет «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 Ответ

1 голос
/ 19 марта 2012

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");
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...