LINQ to SQL, возвращающий старые данные после обновления - PullRequest
3 голосов
/ 25 января 2012

У меня есть приложение, которое использует LINQ to SQL для подключения к базе данных. У меня проблема с получением LINQ to SQL для возврата правильных новых данных обновления.

Что произошло, я изменил поле в пользовательском интерфейсе, оператор обновления LINQ to SQL сгенерировал и сохранил новые данные в базе данных. Однако LINQ to SQL продолжает возвращать старые данные после этого, мне нужно остановить и перезапустить IIS, чтобы получить новые обновленные данные.

Обновление

Обратите внимание, что старые данные возвращаются из LINQ to SQL.

Есть идеи?

Ответы [ 2 ]

5 голосов
/ 25 января 2012

Из-за того, как Linq to SQL обрабатывает кэширование, существует две ситуации, которые могут вызвать странное поведение:

  1. Повторное использование DataContext. DataContext предназначен для использования в качестве одной "единицы работы", где "единица работы" - это, по сути, самое короткое время, которое вы можете потратить, оставив DataContext в живых. См. Раздел «Примечания» на странице MSDN .
  2. Несколько DataContext с. Они будут поддерживать отдельные кэши, поэтому изменения, сделанные с использованием одного DataContext, могут не отражаться в данных, извлекаемых из других. Вы можете отключить кэширование, установив ObjectTrackingEnabled, который решит проблему методом грубой силы. Иначе, некоторые методы для управления одновременными DataContexts описаны здесь: Как: управлять конфликтами изменений
0 голосов
/ 25 января 2012

Звучит так, как будто вы используете какое-то кеширование, может быть, кеширование страниц?Если единственный способ получить обновленные данные - перезапустить приложение, то ваши данные должны зависеть от времени жизни приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...