我使用C#mvc4和EF5.0 在我的数据库中,我有一个名为"设置"包含所有用户的应用程序设置。 设置每月只更改一次,但我使用控制器中几乎每个操作的设置。 目前我为我的控制器创建了承包商,检查是否" HttpContext.Current.Application ["设置"]"为null,如果为null,则从DB加载它。
我的问题是,每次获取此数据而不是从数据库获取数据的最佳方法是什么? 我不在乎每个月回收一次IIS ......
由于
答案 0 :(得分:0)
如果只是设置,您只需将其保存在内存中
即可Settings settings = new Settings();
public DateTime LastUpdated {get;set;}
public Settings GetSettings()
{
if (settings == null || LastUpdated.AddMonths(1) <= DateTime.Now)
{
settings = // DB.GetSettings();
LastUpdated = DateTime.Now;
}
return settings;
}
这会将设置保留在内存中,并每月或重置IIS或更新项目时再次加载。
当然如果您需要更大的东西,可以使用像(Redis或mongoDB)这样的无法使用的工具作为缓存层。
希望帮助