我有一个要求,我需要缓存具有3列(ID,STRING,STRING)的数据库表,并根据C#中的id查询它。我搜索了很多关于Stack Overflow的文章,但却找不到解决这个问题的文章。
答案 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
来缓存数据并查询它们(快速并使用本地驱动器来存储数据)