Подтвердить что ты не робот

Что делает DBContext.Entry?

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

Это действие получает модель фильма и обновляет ее в базе данных.
Но я не могу понять, как. Объект movie не привязан к db, так как структура сущности знает, какая строка в db должна быть обновлена?

Я уверен, что метод Entry имеет к этому какое-то отношение, но я действительно не знаю, что делает этот метод. Я читал, что это доказывает информацию, но я не могу понять, как, просто изменив State записи, она будет прикрепляться и отслеживаться с помощью DBContext.

4b9b3361

Ответ 1

он просто привязывает объект к dataContext, иначе вам придется искать объект с использованием первичного ключа, а затем редактировать значение и сохранять его.

Если у вас есть сущность, которая, как вы знаете, уже существует в базе данных, но какие изменения могут быть сделаны, вы можете указать контексту, чтобы привязать объект и установить его состояние в Модифицированное. http://msdn.microsoft.com/en-US/data/jj592676