Скажем, используя Entity Framework, я получил Entity из базы данных. Можно ли впоследствии проверить, что этот же конкретный объект был изменен в базе данных другим пользователем?
Метод, который я использовал ранее (в приложениях WinForm):
- Сохранить объект в БД
- Добавить запись в таблицу Транзакций с измененным типом сущности, уникальным идентификатором и датой и временем
- При обновлении той же сущности проверьте строки в таблице транзакций после сохранения текущего пользователя.
- Если запись найдена, действуйте соответствующим образом (перезагрузите сущность из базы данных, заблокируйте редактирование, сохраните конфликты и т. Д. В зависимости от того, почему я проверяю изменения).
Причины, по которым я хочу это сделать:
- Избегайте перезагрузки всего набора сущностей и просто обновите сущности, которые изменились
- Проверка конфликтов параллелизма при сохранении
- Разрешение конфликтов параллелизма, основанных на начале редактирования. Для этого мне нужно сделать запись в таблице «Транзакции», когда пользователь начинает редактирование и обновление той же строки таблицы транзакций, когда пользователь сохраняет / отменяет.
Этот метод кажется правильным? Являются ли причины для этого вообще правильными? И, может быть, уже есть функциональность, которую я не смог найти?