Результаты DataContext не обновляют столбцы между вызовами [duplicate]

Решение с использованием пакета sqldf:

library(sqldf)
sqldf("SELECT Year, Month, COUNT(*) as Freq
       FROM df1
       GROUP BY Year, Month")

3
задан Pingpong 24 January 2012 в 23:42
поделиться

2 ответа

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

  1. Повторное использование DataContext. DataContext предназначен для использования в одной «единице работы», где «единица работы» - это, по сути, кратчайшее количество времени, которое вы можете уйти, давая DataContext жить. См. Раздел «Замечания» на странице MSDN .
  2. Несколько DataContext s. Они будут поддерживать отдельные кеши, поэтому изменения, сделанные с использованием одного DataContext, могут не отражаться на данных, извлекаемых из других. Вы можете отключить кеширование, установив ObjectTrackingEnabled, что приведет к серьезному устранению проблемы. В противном случае описаны некоторые методы управления одновременным DataContexts: Как управлять конфликтами изменения
4
ответ дан Sean U 21 August 2018 в 03:28
поделиться
  • 1
    вторая точка, множественный datacontext должен иметь правильные данные. Не могли бы вы рассказать об этом? – Pingpong 25 January 2012 в 01:48
  • 2
    Не в глубине; Я не очень информирован о всех деталях. Я считаю, что это просто стандартная головоломка для кэширования / согласованности: кеш не может знать, изменились ли данные в БД, не опросив его в каждом запросе, и это может привести к отказу от использования кеша. – Sean U 25 January 2012 в 17:30

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

0
ответ дан Digbyswift 21 August 2018 в 03:28
поделиться
  • 1
    Обратите внимание, что старые данные возвращаются из LINQ to SQL. – Pingpong 24 January 2012 в 23:42
  • 2
    Ты уверен? Прошли ли вы через код с помощью отладчика, чтобы узнать, вызывается ли LINQ to SQL? Если да, можете ли вы отправить код, возвращающий устаревшие данные, пожалуйста. – Digbyswift 24 January 2012 в 23:46
Другие вопросы по тегам:

Похожие вопросы: