Невозможно неявно преобразовать тип "System.Data.EntityState" в "System.Data.Entity.EntityState". Явное преобразование существует (вам не хватает роли?)

Я получаю эту ошибку в asp.net при использовании Entity Framework: "Невозможно неявно преобразовать тип System.Data.EntityState в System.Data.Entity.EntityState. Явное преобразование существует (вам не хватает приведения?)"

Вот фрагмент:

foreach (OrderLine line in order.OrderLines)
{
    context.Entry(line.Product).State = System.Data.EntityState.Modified;
}

Пожалуйста, предложите, что мне следует сделать для устранения ошибки.

Ответы

Ответ 1

Когда вы используете EF 6 или перемещаетесь с EF 5 на EF 6, вы должны использовать System.Data.Entity.EntityState вместо System.Data.EntityState. Эта ошибка возникает, когда ваш проект имеет ссылку на EF6, но у вас есть код для EF5.

Также проверьте эту ссылку: При обновлении с EF5 до EF6 следует заменить System.Data.Objects?.

Ответ 2

Ваш код должен быть таким:

if (ModelState.IsValid)
{
    db.Entry(movie).State = System.Data.Entity.EntityState.Modified;
    db.SaveChanges();
    return RedirectToAction("Index");
}
return View(movie);

Ответ 3

Это случилось со мной в сгенерированном контроллере. Это работает для меня после удаления using System.Data.EntityState и добавления using Microsoft.EntityFrameworkCore