Как я могу кешировать результаты запроса, используя LINQ? - PullRequest
0 голосов
/ 02 мая 2010

Есть ли способ кэшировать запросы LINQ to SQL, просматривая ранее переданные параметры и обходя базу данных вместе?

Я знаю, что L2S кэширует некоторые вызовы базы данных, но я ищу постоянное решение, даже если приложение перезапускается, этот кэш перезагружается и никогда не запрашивает базу данных снова.

Существуют ли рамки для C #?

Ответы [ 2 ]

3 голосов
/ 02 мая 2010

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

Вот один из вариантов, чтобы понять, что я имею в виду: Кэширование результатов запросов LINQ

В качестве альтернативы, если есть несколько вещей, к которым вы просто обращаетесь без перерыва, которые редко меняются, рассмотрите просто кэширование List<T> или другой формы результата и принудительное повторное кеширование при необходимости.

0 голосов
/ 02 мая 2010

Когда вы говорите, что хотите, чтобы результаты кэшировались при перезапуске приложений, это звучит так, как будто у вас есть время от времени подключенное приложение , которое вы хотите сохранить в кеше результатов в случае потери сети подключение. Если это действительно так, взгляните на Sync Framework , которая делает именно это. Он также позволяет изменять кэшированные данные, а когда клиент восстанавливает соединение, передает данные и разрешает любые конфликты. Поскольку он сохраняет кэш-память на диске (обычно с помощью SQL Server Compact), он выдержит перезапуск приложений (или даже перезагрузку компьютера).

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