Невозможно редактировать записи базы данных с помощью EFCore, EntityState.Modified: «Ожидается, что операция с базой данC#

Место общения программистов C#
Ответить
Anonymous
 Невозможно редактировать записи базы данных с помощью EFCore, EntityState.Modified: «Ожидается, что операция с базой дан

Сообщение Anonymous »

Я использую Identity Core 1.0 с ASP.NET MVC Core 1.0 и Entity Framework Core 1.0, чтобы создать простую систему регистрации пользователей, используя эту статью в качестве отправной точки, и пытаюсь добавить роли пользователей. Я могу добавлять роли пользователей, но не могу их редактировать. Вот действие Edit в RolesController:

Код: Выделить всё

    [HttpPost]
[ValidateAntiForgeryToken]
public IActionResult Edit(IdentityRole role)
{
try
{
_db.Roles.Attach(role);
_db.Entry(role).State = Microsoft.EntityFrameworkCore.EntityState.Modified;
_db.SaveChanges();
return RedirectToAction("Index");
}
catch (Exception ex)
{
Console.WriteLine(ex);
return View();
}
}
Вот форма в соответствующем представлении:

Код: Выделить всё

@model Microsoft.AspNet.Identity.EntityFramework.IdentityRole
@{
ViewBag.Title = "Edit";
}

Edit Role

@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
@Html.HiddenFor(model => model.Id)
Role name
@Html.TextBoxFor(model => model.Name)

}
Новое имя роли не сохраняется в базе данных, и я получаю следующее исключение: Ожидается, что операция базы данных повлияет на 1 строку (строки), но на самом деле затронула 0 строк. Данные могли быть изменены или удалены с момента загрузки объектов.

Мне удалось использовать именно этот код (с зависимостью Microsoft.AspNet.Identity.EntityFramework вместо EntityFrameworkCore) для редактирования записей базы данных с использованием EF 7, Identity 3 и т. д.

Любые мысли о том, почему этот код не позволяет быть изменен?

Подробнее здесь: https://stackoverflow.com/questions/394 ... e-operatio
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»