Я использую шаблон Cache с Entity Framework, и моя проблема в том, что для службы кэширования Azure мне нужны данные, сериализованные.Что в основном означает, что мне нужно вызвать ToList()
, чтобы иметь возможность передавать данные в кэш (см. Комментарий в коде, чтобы найти правильную строку).
Данные Entity Framework находятся в ObjectSet<T>
и это базовый классэто System.Data.Objects.ObjectQuery<TEntity>
.Должен ли я как-то сказать в определении метода (RetrieveCachedData), что T основан на этом или как я могу получить доступ к ToList
методу?
protected T RetrieveCachedData<T>(string cacheKey, Func<T> fallbackFunction, CacheItemPolicy cachePolicy) where T : class
{
var cache = new AzureCache().GetCache();
var data = cache.Get(cacheKey) as T;
if (data != null)
{
return data;
}
data = fallbackFunction();
if (data != null)
{
// I need to call .ToList() here to be able to add it to the cache
cache.Add(cacheKey, data);
}
return data;
}
Спасибо!