Ошибка при выполнении обновления на Entity Framework Core - PullRequest
0 голосов
/ 01 июля 2019

У меня есть Integration Test, который выполняет обновление объекта в базе данных, поэтому я создаю экземпляр новой сущности, вводю различные свойства и вставляю (вручную) Действительный идентификатор PK . Однако при выполнении обновления выдается следующее исключение:

{Microsoft.EntityFrameworkCore.DbUpdateConcurrencyException: ожидается, что операция с базой данных затронет 1 строку (и), но фактически затронет 0 (и) строк. Данные могут быть изменены или удалены с момента загрузки объектов.

В настоящее время EF не отслеживает объект, поэтому я изменил отображение так, чтобы оно работало следующим образом (Прикрепление модели):

using (var contexto = ContextUtils.ObtenhaContextSQLServer())
{
    using (var transacao = contexto.Database.BeginTransaction())
    {

        //Insert to test, Count == 0
        var antesDeAttach = contexto.Chamarizes.Local;

        //Insert to test
        contexto.Attach(model);

        //Insert to test, Count == 1
        var depoisDeAttach = contexto.Chamarizes.Local;

        contexto.Entry(model).State = EntityState.Modified;
        contexto.Entry(model).Property(x => x.DataCriacao).IsModified = false;

        contexto.Update(model);
        contexto.SaveChanges();
        transacao.Commit();
    }
}

Я вставил Attach из сущности model перед выполнением Update , но исключение сохраняется, чтобы проанализировать проблему, я реализовал код с проверкой Отслеживаемых сущностей, и в результате да, сущность существует. В чем причина проблемы? и возможное решение?

Версии: EF Core 2.1.1.0

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...