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

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

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

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

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

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

Спасибо

Dylan

1 Ответ

3 голосов
/ 23 сентября 2010

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

...