2011-09-15 6 views
1

ASP.NETにはすばらしいキャッシュ機能がありますが、このシナリオに同じロジックを適用するにはどうすればよいですか?これはバックグラウンドアプリケーションです。ウェブではありません。データベースから要求を繰り返すのではなく、キャッシュされたオブジェクトを取得してメモリから戻したいと考えています。パラメータc,aおよびcuの各一意の一致ごとの最初の要求のみがデータベースを呼び出す必要があります。たとえば、6時間ごとに言います。Db-Resultsetをキャッシュする - ベストプラクティスですか? (ASP.NETではなくアプリケーション)

コンストラクタは、3つのパラメータをとり、3つのリストのためのセッターとして機能します。コンストラクタは、0〜300個の厳密に選択されたデータ行のすっきりしたコレクションを受け取ります。しかし、要求の緊張の量。

(サンプルと、ネーミング・擬似であることに注意してください)

/// <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

関連する問題