Как стать автором
Обновить

Комментарии 14

Спасибо, очень полезный материал.
Есть пара проблем в своем проекте, которые можно и нужно решить на уровне описанных выше конфликтов.
LINQ To SQL? Дайте ему спокойно умереть
Не умрет он. Во всяком случае, пока ему нет альтернативы (EF не в счет).
А почему EF не в счет?
Ну IMHO для случая, когда надо выбрать/записать данные в 1-2-3 таблицы LINQ 2 SQL предпочительнее.

В том виде, в котором существует LINQ 2 SQL, его достаточно для большинства простых задач. Собственно, видимо поэтому его больше и не развивают. И не надо :-)
Было бы интересно узнать, как реализуется в Linq to SQL optimistic locking через version поля.
Спасибо за Ваш интерес! Сегодня вечером (после работы) добавлю к статье способ работы с version полем
Добавил в статью пример с использованием поля версии
спасибо за пример. надо будет глянуть, как это в devart linq to oracle sql реализовано…

из своего опыта скажу, что вариант с версиями наиболее интересен тем, что объединяет в себе оптимальную производительность, простоту и надежность оптимистической блокировки.
вопрос: в последнем примере tranaction и db никак между собой не связаны — это так и задумано?
используется неявная транзакция
// офф
что-то напомнило. «2 слесаря автоваза подрались из-за ведра с гайками.»
Очень хорошо написано, действительно для многих полезная статья получилась.
Одно только замечание — править значения в атрибутах все-таки лучше внутри .dbml или в дизайнере, поскольку при редактировании непосредственно файла .designer.cs ваши изменения могут затереться при изменении схемы DBML.
Спасибо автору :)
Мучался из-за появляющегося конфликта при обновлении данных в двух таблицах одновременно (в БД еще триггер есть, который пока нельзя выпилить). как оказалось, конфликт был из-за атрибута IsVersion=true на поле одного из объектов.

При этом, что, цуко, странно, в объекте ObjectChangeConflict коллекция MemberConflicts была пустая, и непонятно было на каком именно поле конфликт произошел.

Если это ожидаемое поведение (пустая коллекция MemberConflicts при конфликте по версии) при возникновении исключения ChangeConflictException, то можно было бы добавить в статью в раздел про isVersion фразу про это :)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории