У меня есть служба Windows, которая запускается каждые 10 секунд ... каждый раз, когда она запускается, она берет некоторые тестовые данные, изменяет их и сохраняет в базе данных, используя EntityFramework.Однако при каждом втором запуске, когда я пытаюсь сохранить изменение, я получаю следующее исключение оптимистического параллелизма: -
Оператор сохранения, вставки или удаления в хранилище затронул неожиданное количество строк (0).Объекты могут быть изменены или удалены с момента загрузки объектов.Обновление записей ObjectStateManager
Я точно знаю, что в эту БД ничего не пишет, кроме моей службы, которая обновляет записи каждые 10 секунд.Что может быть причиной исключения параллелизма здесь?
Я думаю, что связанная сущность где-то в графе объектов модифицировалась до второй операции сохранения.Все, что я на самом деле делаю, - это создаю экземпляр нового контекста объекта и вызываю операцию сохранения для некоторых записей, которые я извлек, используя тот же контекст.Следующий код работал ---
var ctx = new blahEntities();
var profile = ctx.ProfileSet.Where(pr=>pr.FirstName.Contains("a")).FirstOrDefault();
profile.Address = "modified";
ctx.SaveChanges();
ctx.Refresh(RefreshMode.StoreWins,profile);