如何在c#WinApps中创建本地数据缓存?

如何在c#WinApps中创建本地数据缓存?,c#,c#-3.0,C#,C# 3.0,任何人都可以给我一个关于如何创建本地数据缓存的示例?例如,我从数据库中查询了1000万条记录,并希望将其存储在本地数据库中,以便下次重新加载数据时不会遇到性能问题。非常感谢。由于您只需要在应用程序的生命周期内使用缓存,因此可以使用数据集来实现此目的(假设您有足够的内存)。只需将一个数据读入数据集中,从那时起,只需从数据集中读取: DataSet myData = null; public DataSet GetMyData() { if (myData == null) {

任何人都可以给我一个关于如何创建本地数据缓存的示例?例如,我从数据库中查询了1000万条记录,并希望将其存储在本地数据库中,以便下次重新加载数据时不会遇到性能问题。非常感谢。

由于您只需要在应用程序的生命周期内使用缓存,因此可以使用数据集来实现此目的(假设您有足够的内存)。只需将一个数据读入数据集中,从那时起,只需从数据集中读取:

DataSet myData = null;

public DataSet GetMyData()
{
   if (myData == null)
   {
      myData = GetDataFromDatabase();
   }
   return myData;
}

您可以使用
静态列表
其中T是您的实体。

是否希望缓存在本地持久化?Hi Oded,一旦用户退出应用程序,它应该被擦除或删除。有什么想法吗?或者数据缓存的示例代码?@David Stratton-你说得对,伙计,如果你真的不知道这篇文章的答案,为什么还要浪费时间呢?谢谢Oded,数据集可以处理1000万条记录吗?我尝试过使用它,但问题在于搜索和过滤记录。问题是性能。@kurt_jackson19-为什么不能将搜索和筛选推迟到数据库?这就是数据库的好处。@Oded,是的,我理解,问题是你需要时间才能得到输出。假设您有1000万条记录。@kurt_jackson19-如果索引良好,数据库服务器在筛选/搜索1000万条记录时不会出现问题。数据传输当然需要时间,但我们希望您不需要一次性使用所有1000万条记录。@oded,谢谢。这就是我寻找替代解决方案的原因。一种不需要大量数据集的好方法,尽管带有唯一对象键的
IDictionary
通常效率很高,并且仍然比
dataset
占用的内存少很多。