使用EF缓存来自数据库的数据4

问题描述:

我有一个应用程序需要在内存中保留来自数据库的数据。 有5-6个表格,行数很少,表格很少更新,而且由于应用程序需要非常频繁地使用这些数据,所以我希望避免所有时间都在每个动作上请求数据库。 我正在使用Entity Framework 4(linq to entities),它每次查询都会发送请求。我知道有可能避免使用ToList或...但我需要来自这6个表的信息并且查询应用联接。使用EF缓存来自数据库的数据4

什么是更好的解决方案。

查询的目的是执行。如果它解决了问题,您可以检查EF Caching Wrapper,但我不这么认为。缓存提供程序缓存实际查询,因此它足以更改条件并将其视为另一个查询。

这应该通过将数据加载到自定义数据结构(列表)并在其上使用Linq-to-objects来完成。

+0

所以再次唯一的选择似乎是ToList()... – NDeveloper 2011-05-07 19:43:45

如果您要将该数据加入其他不适合缓存的数据,我会建议查看您的数据库引擎功能。大多数高级SQL数据库都会将这些表放入RAM中。对非缓存数据发出查询时,您已经会产生网络延迟开销。数据库已经在RAM中已经有了索引。除非你正在谈论像图像或类似的大行。你只需将一小部分处理从一个地方移动到另一个地方。此外,为了与SQL数据库一样高效,不仅需要查找如何缓存,还要缓存索引并编写代码以便使用和维护。

尽管如此,在一些使用情况下,这将是非常有用的事情。