Как предотвратить грязную запись для веб-форумов?
Как ученик по веб-разработке, я понятия не имею, как предотвратить грязную запись для веб-форумов. Есть ли пища для размышлений? Заранее спасибо!
Я работаю над ASP.NET MVC и Entity Framework.
Хорошо, извините за ввод в заблуждение. Грязная запись здесь означает перезапись изменений другого человека в базе данных. При использовании оптимистического параллелизма.
1 ответ
Решение
Чтобы сделать оптимистичный параллелизм в EF, вы:
- Добавьте или выберите поле для использования для оптимистичного управления параллелизмом. Мы используем TIMESTAMP.
- В конструкторе EF измените ConcurrencyMode на Fixed для этого свойства.
- Сериализуйте "старое" значение поля для скрытого поля в форме.
- Десериализуйте "старое" значение при отправке формы и добавьте его к обновляемой сущности.
EF выдаст исключение OptimisticConcurrencyException, если сохраненное значение не соответствует старому значению во время обновления.