Алексей, если так смешно, то отчего же так все сложно? Это так, камешек тебе в огород. Во-вторых, сценарий стандартный только для общего случая, а в целом, с использованием бизнес правил и аттрибутов его можно и расширить, что и делают в уже кастомизированных решениях. Ты наверное не читал или не слыхал про связки workflow + diff + transaction scope?Сообщение от RX4HX
Теперь отвечая на твой вопрос, по поводу "Вася" и "Петя"... Есть в базе данных такое понятие, как флаги модификации полей, слыхал наверное? Так вот на основе их и делай вывод, какая из записей более актуальная. Что тут сложного? В-третьих, ключевой момент бы сравнение всех полей набора, поочередно, а не отдельно взятого поля. У тебя совокупность типа и времени создания, модификации, изменения - куда потерялась? А... то-то!
PS Кроме того есть и Pessimistic Lock, который тоже применяется. А при использовании тех же diff есть много полезного. Ты почитай, а то похоже просто не в курсе, как сделать Merge правильно. Иначе б вопроса о Васе и Пете не было бы...