Невозможно неявно преобразовать тип "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