2011-09-15 43 views
1

ASP.NET有一個很好的緩存功能,我如何最好地將相同的邏輯應用於此場景?這是一個後臺應用程序 - 不是網絡。我想從內存中獲取並返回緩存的對象,而不是重複來自數據庫的請求。只有參數c,acu的每次唯一匹配的第一個請求應調用數據庫。比方說,每6小時。緩存Db結果集 - 最佳實踐? (應用程序,而不是ASP.NET)

該構造函數有三個參數,並作爲三個列表的setter。構造函數收到一個整齊的0-300集合,嚴格選擇數據行。儘管如此,請求數量仍然很緊張。

(請注意,樣品和namings是僞)

/// <summary> 
/// Constructor 
/// </summary> 
public Collect(string c, string a, string cu) 
    : base(c, a, cu) 
{ 

    db = new DatabaseInstance(); 

    // DObject 
    this._d = (from d in db.DObject 
         where .... 
        select d).ToList(); 

    // SObject 
    this._s = (from s in db.SObject 
        where ...... 
        select s).ToList(); 

    // MObject 
    this._v = (from mv in db.MObject 
        where ...... 
        select mv).ToList(); 
} 

回答

2

可以使用System.Runtime.Caching.MemoryCache對象爲。它的工作原理幾乎與System.Web.Caching的工作方式相同,但是在沒有提及System.Web的情況下可以使用,並且具有更多的可擴展性。

+1

也許,那就是重點。抱歉。谷歌搜索很容易。起初我很困惑,因爲我得到的所有東西都與網頁緩存和重複交替的樣本(如企業級框架)有關。 Memorycache做到了! – Independent