Это встроено в LINQ to SQL и EF со свойством UpdateCheck атрибута Column. Мой вариант - использовать LINQ to SQL с отсоединенными сущностями POCO, если вы определенно хотите работать только с MS SQL SERVER и вам не требуется сложная база данных для сопоставлений сущностей.
В этом случае я бы использовал одно поле параллелизма в каждой из ваших таблиц и выполнял бы проверку параллелизма только для этого поля. Целочисленное поле хорошо и просто увеличивать его с каждым обновлением.
См. Здесь для управления параллелизмом с использованием LINQ to SQL.
Параллелизм с LINQ to SQL
Думал, это тоже будет удобно:
LINQ to SQL Обзор оптимистического параллелизма
P.S. Все это предполагает, что ваше решение будет хорошо с использованием оптимистичного параллелизма. Если вы находитесь на сервере с высокой нагрузкой, где данные сильно меняются, то может потребоваться более пессимистичное решение для параллелизма.