0
我正在使用實體框架的緩存模式,我的問題是Azure緩存服務需要數據序列化。這基本上意味着我需要調用ToList()
才能將數據發送到緩存(請參閱代碼中的註釋以找到正確的行)。在實體框架中使用泛型進行緩存
實體框架的數據在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;
}
謝謝!
這種方法中的T是什麼? –
它應該是ObjectSet,而T在此上下文中是指例如ObjectSet 。泛型不太好,但我可以看到這可能是解決問題的方法。 –
Tx3