2014-03-19 132 views

回答

38

我正在使用MemoryCache來存儲查詢結果,到目前爲止它工作正常。
以下是我用來實現它的幾個鏈接。
- Using MemoryCache in .NET 4.0 (codeproject)
- Using MemoryCache in .NET 4.0 (blog entry)

正如我現在讀他們,我覺得他們不說清楚,也許有,我已經失去了某處更好的鏈路。
這裏是我的代碼示例,我希望是不夠清楚,讓你看到它是如何工作

public static class AgencyCacheManager 
{ 
    private static MemoryCache _cache = MemoryCache.Default; 

    public static List<RefAgency> ListAgency 
    { 
     get 
     { 
      if (!_cache.Contains("ListAgency")) 
       RefreshListAgency(); 
      return _cache.Get("ListAgency") as List<Agency>; 
     } 
    } 

    public static void RefreshListAgency() 
    { 
     var listAgency = GetAllComplete(); 

     CacheItemPolicy cacheItemPolicy = new CacheItemPolicy(); 
     cacheItemPolicy.AbsoluteExpiration = DateTime.Now.AddDays(1); 

     _cache.Add("ListAgency", listAgency, cacheItemPolicy); 
    } 
} 

,並從緩存

public Agency FindBy(string agencyId) 
{ 
    return AgencyCacheManager.ListAgency.SingleOrDefault(x => x.AgencyPartnerCode == agencyId); 
} 
+0

大,操作簡單,解釋檢索列表。謝謝! – leahcimp