2011-10-02 120 views
2

在我的一個Web應用程序中,我試圖緩存一些參考實體以減少數據庫命中。我正在使用緩存應用程序塊來實現緩存。我對它很陌生,我不確定它的實施。我寫了一個樣本庫來利用它。 我希望你們所有人都能看看並評論一下。使用緩存在Asp.net應用程序中的存儲庫層緩存應用程序塊

public class StatusRepository 
    { 
     ICacheManager statusCahce = CacheFactory.GetCacheManager(); //I am not sure whether I should initilise statusCache object here. 

    public StatusEntity Get(byte statusId) 
     { 
      StatusCollection statusCollection = (StatusCollection)statusCahce.GetData("Statuses"); 
      if (statusCollection != null) 
      { 
       return (StatusEntity)statusCollection.StatusList.First(p=>p.StatusId==statusId); 
      } 
      else 
      { 
       // HIT Database to get the entity 
      } 
     } 
     public StatusCollection GetStatusList() 
     { 
      StatusCollection statusCollection = (StatusCollection)statusCahce.GetData("Statuses"); 
      SqlHelper sql = new SqlHelper(true); 
      if (statusCollection != null) //We have it in cache 
      { 
       return statusCollection; 
      } 
      else //Hit Database 
      { 

        //Hit Database to get the StatusCollection and add that   collection to cache  

        statusCahce.Add("Statuses", statusCollection); 
        return statusCollection; 
       } 
      } 
     } 
    } 
} 

請讓我知道,我該如何改進它。

請讓我知道,我們可以在緩存中獲得多少數據。

+0

根據MSDN CacheFactory不再使用。你爲什麼不描述你真正想實現的目標,以便人們可以提出其他技術或方法。 – Jeroen

回答