缓存数据并查询它

时间:2013-11-25 10:58:27

标签: c# sql-server database caching

我有一个要求,我需要缓存具有3列(ID,STRING,STRING)的数据库表,并根据C#中的id查询它。我搜索了很多关于Stack Overflow的文章,但却找不到解决这个问题的文章。

2 个答案:

答案 0 :(得分:1)

创建实体类:您可以使用这三个字段创建一个类

创建缓存类:此类将具有Entity类(存储库)的集合,并在第一次请求时将其存储在会话中,对于所有后续请求检查,如果存储库具有值,则从存储库返回,否则从数据库加载存储库,返回。

如果您需要样本结构,请告诉我。

private class MyEntity
{
  public int ID {get;set;}
  public String String1 {get;set;}
  public String String2 {get;set;}
}

public class Repository
{
    List<MyEntity> myEntityCollection{get;set;}
    List<MyEntity> MyEntityCollection
    {
        get
        {
            if (myEntityCollection == null) { LoadAndFillMyEntityCollectionFromDatabase(); } 
            return myEntityCollection;
        }
    }

    public MyEntity GetMyEntity(int id)
    {
        return MyEntityCollection.FirstOrDefault(x=>x.ID == id);
    }
}

这是一个示例类结构,其中LoadAndFillMyEntityCollectionFromDatabase是一个从数据库加载myEntityCollection集合的方法。

我已经在这里写了,如果没有编译,你可能需要做一些小改动。

答案 1 :(得分:0)

我建议您使用Lucene索引引擎来缓存和查询数据。看看:Lucene .NET Wrapper Reference

[edit]

这很容易使用,并且工作得非常快:)测试和批准:)顺便说一句。一些ppl使用SQLite来缓存数据并查询它们(快速并使用本地驱动器来存储数据)