Получили из базы объект, поработали с ним в бизнес логике, теперь надо сохранить его обратно. Но в таблице базы есть поле timestamp, которое меняется при изменении записи в таблице. То есть, сохранять изменения в базу нельзя, если timestamp в объекте и в базе различаются, то есть, запись изменилась другим человеком, скажем.
Не получается добавить атомарную проверку.
Так не работает:
db.Products.Where(p => p.timestamp == product.timestamp).Update(p => p, product);
Так тоже не работает:
db.Products.Update(p => p.timestamp == product.timestamp, p => product );
И так не работает:
db.Where<DB, Product, DB>(p => p.timestamp == product.timestamp).Update(product);
Работает только так, но без проверки на измененный timestamp:
db.Update(product);
Можно как-то сделать?