У меня есть таблица сообщений с числовым столбцом Version
для отслеживания n-й ревизии для каждой записи. Каждый раз, когда строка обновляется, я бы хотел, чтобы ее Version
число увеличивалось.
В настоящее время я увеличиваю столбец в логике своего приложения, но, поскольку post.Version += 1;
не равно UPDATE Posts SET Version = Version + 1...
, я беспокоюсь, что два одновременных обновления приведут только к одному приращению версии.
Решить это легко с помощью ручного выражения SQL (как указано выше) или триггера обновления, но я бы предпочел, чтобы Fluent NHibernate позаботился об этом для меня, если это возможно.
Использование транзакции для обновления не помешает двум одновременным чтениям одновременно увидеть версию «7», и обе решат, что следующее значение должно быть 8. Таким образом, два обновления до версии 7 могут привести к значению 8 вместо из 9.
Как спроектировать или отобразить автоинкрементный целочисленный столбец, безопасный для параллелизма?