0
私はEntity Frameworkでキャッシュパターンを使用していますが、私の問題はAzureキャッシングサービスではデータをシリアライズする必要があることです。基本的には、ToList()
を呼び出してデータをキャッシュに入れる必要があることを意味します(正しい行を見つけるためのコードのコメントを参照)。Entity Frameworkでのキャッシングのジェネリックの使用
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;
}
ありがとうございます!
この方法では「T」とは何ですか? –
これは、ObjectSetであり、この文脈におけるTは、例えば、ObjectSet を意味する。私はジェネリック医薬品にはあまりよくないが、それが問題の解決策かもしれないことがわかる。 –
Tx3