Можно ли обновить полученные данные


Я написал некоторый код, который получает логи из базы данных, обрабатывает их, и если что-то идет не так, в базу данных записывается сообщение об ошибке. В конце кода я удаляю все записи из базы данных, где поле ошибки (в базе данных) равно null.

            var logs = ctx.Logs.Where(record => String.IsNullOrEmpty(record.Error))
                        .Where(record => !Beingprocessed.Contains(record))
                        .Take(100)
                        .ToArray();

Выборка / обработка / удаление выполняется в нескольких потоках одновременно, поэтому записи могут быть удалены другим потоком из базы данных во время выполнения этого кода. Есть ли возможность просто обновить logs со значениями из базы данных?

Что-то вроде

logs.Update();
ctx.Logs.RemoveRange(logs.Where(l => l.Error == null));
ctx.SaveChanges();

(я знаю, что могу просто использовать ID из logs и т. д. чтобы получить их снова, но я хочу знать, есть ли что-нибудь, что существует для обновления сущностей, которые вы извлекли из базы данных.)

1 3

1 ответ:

Может быть, это поможет:

ctx.Entry(Logs).Reload();