Обработка обновлений в Cached DataTable, когда пользовательский сеанс содержит DataViews на основе этого DataTable. - PullRequest
0 голосов
/ 20 ноября 2008

Мой сайт работает на одном сервере. Я кеширую DataTable. Каждый сеанс имеет ссылку на свой собственный DataView, ссылающийся на этот DataTable. Что меня беспокоит, так это то, что когда мне нужно внести изменения в базовые данные, будут ли они распространяться на каждую из сессий, ссылки на него.

Или есть лучший способ справиться с этой ситуацией.

1 Ответ

0 голосов
/ 20 ноября 2008

В принципе да. Изменения будут распространяться на представления при условии, что вы продолжаете использовать ту же таблицу данных. Однако существует вероятность возникновения проблем в зависимости от того, как вы это реализуете:

  • У вас есть потенциальное состояние гонки при создании кэшированной DataTable в первый раз: несколько запросов к серверу могут обнаружить, что кэшированная DataTable не существует, и попытаться сгенерировать ее - в этом случае вы могли бы иметь дубликат DataTable.

  • Если вы регенерируете кэшированную таблицу данных (например, если она удалена из кэша ASP.NET из-за истечения времени ожидания), то существующие DataViews в сеансе будут продолжать ссылаться на старую таблицу данных.

...