我有一个应用程序,它需要保持数据从数据库在内存中。有5-6个表,行很少,表很少更新,由于应用程序需要这些数据非常频繁,我希望避免每次操作都请求数据库的所有时间。我使用的是实体框架4 (linq to entities),它每次查询时都会发送请求。我知道使用ToList可以避免这种情况……但我需要从这6个表和查询应用联接的信息。
什么是更好的解决方案。
发布于 2011-05-08 03:18:59
查询的目的是要执行。如果EF Caching Wrapper解决了这个问题,你可以检查它,但我不这么认为。缓存提供程序缓存实际的查询,因此更改where条件就足够了,并将其视为另一个查询。
这应该通过将数据加载到自定义数据结构(列表)中并在它们上使用Linq-to-objects来完成。
发布于 2013-05-25 05:30:36
如果您要将该数据连接到其他不适合缓存的数据,我建议您查看数据库引擎的功能。大多数高级SQL数据库已经将这些表放在RAM中。当您发出对非缓存数据的查询时,您已经招致了网络延迟开销。而且数据库在RAM中也已经有了索引。除非你在谈论像图像这样的大行或类似的东西。您只需将少量的处理从一个位置移动到下一个位置即可。此外,为了像SQL数据库一样高效,您不仅需要找到如何缓存,而且还需要缓存索引并编写代码来使用和维护它。
尽管如此,在某些用例中,这样做还是非常有用的。
https://stackoverflow.com/questions/5923354
复制相似问题