Как заставить Linq-to-SQL игнорировать столбцы, измененные триггерами INSERT?

В одной из моих таблиц есть столбец, который обновляется различными триггерами INSERT/DELETE в моей базе данных — триггеры выполняют некоторые вычисления на основе содержимого связанных таблиц и сохраняют результат в столбце базовой таблицы для упрощения запросов и т. д.

Linq-to-SQL генерирует исключение ChangeConflictException, когда я пытаюсь обновить эти таблицы — предположительно, потому, что триггер изменяет этот столбец, и поэтому L2S считает, что существует конфликт данных.

Точное поведение, которое я ищу, выглядит следующим образом:

  • L2S должен получить значение этого столбца при извлечении объекта.
  • L2S должен игнорировать изменения значения этого столбца — изменения, сделанные в коде, не должны сохраняться в БД.
  • Конфликты при сохранении следует игнорировать.
  • (если возможно) последнее значение должно быть извлечено из БД после любой операции вставки/обновления, но я могу жить без этого, если это сложно.

Может ли кто-нибудь помочь мне реализовать это поведение в Linq-to-SQL?

Спасибо,

Дилан


person Dylan Beattie    schedule 23.09.2010    source источник


Ответы (1)


Вы должны настроить столбцы как автоматически генерируемые (так же, как вы делаете это с первичными ключами) в конструкторе LINQ to SQL. Это предотвратит эти конфликты.

person Steven    schedule 23.09.2010