Ответ 1
Я уверен, что вы нашли решение, но сейчас я столкнулся с той же проблемой и смог его решить, изменив строку EntityState на следующее:
db.Entry(user).State = EntityState.Modified;
У меня появляется сообщение об ошибке "Невозможно разрешить Symbol ObjectStateManager" при попытке вызвать его в моем контексте базы данных из Entity Framework 4. Я не могу найти кого-либо еще в этой проблеме. Я попытался использовать System.Datastrong > и System.Data.Objects.
Существует ли конкретная структура Entity Framework для использования ObjectStateManager? Или я пропустил какой-то пакет установки? Я использую Database First Entity Framework.
Вот код, который дает мою ошибку: (Строка 7)
[HttpPost]
public ActionResult EditProfile(User user)
{
if (ModelState.IsValid)
{
db.Users.Attach(user);
db.ObjectStateManager.ChangeObjectState(user, EntityState.Modified);
db.SaveChanges();
}
return RedirectToAction("Profile");
}
Я уверен, что вы нашли решение, но сейчас я столкнулся с той же проблемой и смог его решить, изменив строку EntityState на следующее:
db.Entry(user).State = EntityState.Modified;
Возможно, вы используете код EF. В этом случае вам нужно вернуть свой код в явную реализацию IObjectContextAdapter, т.е.
((IObjectContextAdapter)db).ObjectContext.ObjectStateManager
Вы добавили сборку System.Data.Entity
в проект?
Также правильный System.Data.Objects
.
Один дополнительный элемент для проверки: целевая .net-структура для проекта установлена на .net 4 +.