C# 缓存数据库结果集-最佳做法?(应用程序,而不是ASP.NET)

C# 缓存数据库结果集-最佳做法?(应用程序,而不是ASP.NET),c#,caching,C#,Caching,ASP.NET有一个很好的缓存功能,如何最好地将相同的逻辑应用于此场景?这是一个后台应用程序,不是web之类的。我希望从内存中获取并返回缓存对象,而不是重复数据库中的请求。只有参数c、a和cu的每个唯一匹配的第一个请求才应调用数据库。比如说,每6小时 构造函数接受三个参数,并充当三个列表的setter。构造函数接收0-300个严格选择的数据行的整洁集合。尽管如此,由于大量的请求 (请注意,样本和名称是伪的) // ///建造师 /// 公共收集(字符串c、字符串a、字符串cu) :底座(c、a

ASP.NET有一个很好的缓存功能,如何最好地将相同的逻辑应用于此场景?这是一个后台应用程序,不是web之类的。我希望从内存中获取并返回缓存对象,而不是重复数据库中的请求。只有参数
c
a
cu
的每个唯一匹配的第一个请求才应调用数据库。比如说,每6小时

构造函数接受三个参数,并充当三个列表的setter。构造函数接收0-300个严格选择的数据行的整洁集合。尽管如此,由于大量的请求

(请注意,样本和名称是伪的)

//
///建造师
/// 
公共收集(字符串c、字符串a、字符串cu)
:底座(c、a、cu)
{
db=新数据库实例();
//多宾特
这个._d=(从db.DObject中的d开始)
哪里
选择d).ToList();
//索宾
此._s=(来自db.SObject中的s
哪里
选择s.ToList();
//莫宾特
这个._v=(从db.MObject中的mv开始)
哪里
选择mv.ToList();
}

您可以使用
System.Runtime.Caching.MemoryCache
对象来实现这一点。它的工作方式几乎与
System.Web.Caching
的工作方式相同,但不需要参考
System.Web
就可以使用,而且扩展性更强。

可能就是这个要点。很抱歉这对谷歌来说很容易。一开始我很困惑,因为我得到的所有东西都与web缓存和大量交替样本有关(如企业级框架)。Memorycache做到了!
/// <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();
}