我有一个Order
个对象列表。
这些对象在我的应用程序的多个用户之间共享,并且经常访问时很少更改,这使它们成为缓存的理想候选对象。
我面临的问题是我对我的MSSQL数据库进行了LINQ查询,它进行了排序和搜索 - 但如果我将它们保存在缓存中,我该怎么做呢?我不想重复代码(DRY!)。
答案 0 :(得分:1)
在我看来,你必须做这样的事情
因此,在第一次调用完成的情况下,查询缓存集合,但由于它仍为空,您可以获取所有对象(当然这取决于数据量),然后一旦数据是在内存中,您的LINQ查询将在其上执行 后续调用不会访问数据库,只会访问缓存的集合。
您必须注意访问您的集合线程安全。此外,您可以包括一些刷新间隔,基本上是基于您在一些固定间隔内刷新缓存的时间戳。