我应该如何存储查找集合?

时间:2010-05-12 18:53:16

标签: asp.net

我正在调试一个使用XML文件将数据存储为键/值对的应用程序。

解析每个页面加载XML文件以使用这些键/值对填充Dictionary集合。然后使用Dictionary来根据键来查找值。

这种从每个页面上的XML文件加载数据的方法是否是一种良好的做法?

以下是一些想法:

  • XML数据应该存储在数据库表中吗?
  • 我应该使用集合还是针对每个查找请求点击数据库?
  • 是否可以在应用程序启动时加载集合并将其设置为全局/应用程序属性?

你们有什么想法?

3 个答案:

答案 0 :(得分:4)

我建议将XML分析的结果加载到ASP.NET缓存中:

Dictionary<string, object> values = new Dictionary<string, object>();

if(Cache["ConfigDictionary"] != null)
{
    values = (Dictionary<string, object>)Cache["ConfigDictionary"];
}
else
{
    // Load data into the dictionary here

    // This dependency will ensure that you don't keep stale data in the cache
    CacheDependency dependency = 
        new CacheDependency(Server.MapPath("yourFileHere.xml"));

    // Inser the Dictionary into the cache
    Cache.Insert("ConfigDictionary", values, dependency);
}

答案 1 :(得分:1)

我同意@Justin,将收藏保存到缓存中是件好事。 此外,关于在数据库中存储数据的问题主要取决于应用程序加载的内容。如果有配置设置,或其他更改概率较低的数据,我认为将其保存在XML文件中会更有效。为什么呢?

  • 易于维护;
  • 您不需要关心连接,查询和参数;
  • 更容易查看数据内容;
  • 非数据库技术人员(支持应用),可以更改设置。

答案 2 :(得分:0)

我会将其存储在数据库中而不是XML文件中。它更容易查询(例如,如果你必须运行一些报告),备份也更容易控制。

当然,我假设您正在为您的Web应用程序使用数据库。

如果您位于同一网页的上下文中,您可以尝试使用Viewstate减少数据库运行次数。