我有一个Order对象列表。
这些对象在我的应用程序的多个用户之间共享,并且在经常访问时很少更改,这使它们成为缓存的理想选择。
我面临的问题是,我对我的MSSQL db有LINQ查询,它执行排序和搜索,但是如果我将它们保存在缓存中,我该如何做呢?我不想重复代码(干!)。
发布于 2009-10-01 07:00:50
在我看来,你必须这样做
。
因此,在完成第一个调用的情况下,您的缓存集合将被查询,但是由于它仍然是空的,所以您可以去获取所有对象(当然,这取决于数据量),然后,一旦数据在内存中,LINQ查询就会在其上执行。
随后的调用不会击中DB,而只会访问缓存的集合。
您必须注意访问您的集合线程安全。此外,您可能包括一些刷新间隔,基本上是基于时间戳,您在一定的时间间隔内刷新您的缓存。
https://stackoverflow.com/questions/1502278
复制相似问题