缓存Db-Resultset - 最佳做法? (应用程序,而不是ASP.NET)

时间:2011-09-15 08:31:44

标签: c# caching

ASP.NET有一个很好的缓存功能,我如何最好地将相同的逻辑应用于这种情况?这是一个后台应用程序 - 而不是Web上的东西。我想从内存中获取并返回缓存的对象,而不是重复来自数据库的请求。只有参数cacu的每个唯一匹配的第一个请求才能调用数据库。比方说,每6个小时。

构造函数接受三个参数,并用作三个列表的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();
}

1 个答案:

答案 0 :(得分:2)

您可以使用System.Runtime.Caching.MemoryCache对象。它的工作方式与System.Web.Caching的工作方式几乎相同,但可以在不引用System.Web的情况下使用,并且可以扩展得更多。