2011-08-02 52 views
2

我有一个应用程序使用来自表中的数据,该表中的很多部分几乎总是不变。
这似乎是一个正确的地方来缓存它。所以:我需要制作缓存的数据列表才能使用它,但有一些过期超时后,我的缓存列表应该从数据库更新自己(这就是为什么全局静态列表不适用于这种情况)。在.NET Framework 4中从数据库缓存的数据列表

PS确定那不是那么困难,但即时新的缓存和帮助将节省我的时间,谢谢。至少我可以创建静态列表,它会在另一个线程中使用计时器超时后更新,但我认为这样的解决方案太难看了。

回答

3

很多的提示这里就如何实现这一目标:

http://msdn.microsoft.com/en-us/library/dd997357.aspx

Cache可以配有到期日,因此会去不处理重新获取一个设定的时间量后的数据定时器等

+0

如何在一段时间后更新缓存?..有一些ChangeMonitors,但如何在一段时间后启动事件(到期超时),例如,没有定时器..? – 0x49D1

+0

我的列表中,我想要使用的缓存将是这样的:实体上下文=新的实体(); var cacheList = context.Dictionaries.ToList(); (我在这里使用EF来获取数据,所以我需要在到期时间后重新查询数据库) – 0x49D1

+0

您不会 - 它会在您读取时更新并且缓存超时已过期。为了实施,您最初存储了数据被提取的日期。每次您从缓存中读取数据时,都会检查当前日期,如果预定时间已过,则您再次读取并重新获取缓存副本。 – Deleted