Мы стремимся реализовать Оптимистическую блокировку в нашем приложении WCF/WPF. До сих пор лучшим способом, который я придумал, является внедрение универсального Optimistic, в котором будет храниться копия оригинала и любых изменений (поэтому он будет хранить две копии: оригинальную и измененную) любого объекта значения, который может быть модифицирована. Это лучший способ сделать это?Изменение структуры отслеживания
Например: UserVO будет обернут общим как Оптимистичный. Когда внесение изменений в Оптимистику, изменения будут внесены в измененную копию, сохраненную в Оптимистическом, в то время как оригинал, также сохраненный в Оптимистике, останется неизменным. Основная проблема заключается в том, что она будет использовать вдвое больше пространства и, следовательно, пропускную способность.
Благодаря
EDIT Решение должно быть зависит от базы данных, и было бы полезно, чтобы иметь возможность указать политику разрешения конфликтов для каждого объекта значения. (например, пользовательский объект может попытаться объединиться, если обновленные строки не были изменены, но объект транзакции всегда будет требовать вмешательства пользователя).
Если вы используете MS SQL, используйте столбец timestamp, который автоматически изменяет метку времени при изменении строки. – JoshBerke
Мой ответ - агностик DBMS. Таким образом, вы либо используете некоторую функцию в базовых СУБД для обновления временной метки, либо выполняете ее сами. Там нет разногласий :) – vboctor