Как кэшировать результаты LINQ to SQL? - PullRequest
0 голосов
/ 29 июня 2011

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

Каждая хранимая процедура возвращает класс, который принимает некоторые входные параметры, например:

public partial class csp_WeekCommencingListResult
{        
    public static IEnumerable<csp_WeekCommencingListResult> GetAll(int? masterTrackingGroupId)
    {
        using (var dataContext = OscaDataContext.CreateWithCustomTimeOut())
        {
            return dataContext
                .csp_WeekCommencingList(masterTrackingGroupId)
                .ToList();
        }
    }
}

Как я могкэшировать результат хранимой процедуры для переданных параметров?

Например, когда в эту хранимую процедуру передается 1, ее результат должен быть кэширован на день.

Есть мысли?Есть ли рамки, которые я могу использовать?или я должен построить свой собственный менеджер кэша для каждой хранимой процедуры, используя объект .NET Cache?

Спасибо,

1 Ответ

0 голосов
/ 29 июня 2011

Вам, вероятно, следует добавить кэширование на более высоком уровне, например, в коде, который вызывает этот код.

Постарайтесь найти хорошую стратегию кэширования, которая работает с вашим проектом.

И когда дело доходит до менеджеров кэша, я обычно использую ICacheManager из Microsoft EnterpriseLibrary Caching , которые я внедряю в некоторую инфраструктуру внедрения зависимостей, например Castle или StructureMap. Таким образом, я могу запускать разные конфигурации для разных сред (dev, test, prod и т. Д.).

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