Я изучаю параллелизм в сочетании с EF4.0 и задаю вопрос об используемой схеме блокировки. Я относительно новичок в программировании в целом и параллелизме в особенности, так что, возможно, я неправильно говорю ... Пожалуйста, держитесь за меня.
Скажем, я настраиваю фиксированный режим параллелизма для свойства номера версии.
Теперь скажите, что я извлекаю запись (сущность) из базы данных (контекст) и редактирую некоторое свойство. Версия увеличивается, и когда SaveChanges вызывается в его контексте. Если текущая версия базы данных (контекста) совпадает с версией исходной записи (сущности), сохранение продолжается, в противном случае исключение OptimisticConcurrencyException вызывается EF.
Теперь меня интересует следующее: между проверкой версий всегда есть небольшой промежуток времени, каким бы маленьким он ни был. Таким образом, теоретически кто-то другой мог просто обновить запись между сравнением и фактическим сохранением, что может привести к повреждению данных.
Как это решить? Такое ощущение, что проблема просто выдвигается вперед.