C#ASP.NET-需要搜索/排序的对象的缓存列表?
我有一个C#ASP.NET-需要搜索/排序的对象的缓存列表?,c#,asp.net,caching,C#,Asp.net,Caching,我有一个Order对象列表 这些对象在我的应用程序的多个用户之间共享,并且在经常访问时很少更改,这使它们成为缓存的理想候选对象 我面临的问题是,我对我的MSSQL数据库进行LINQ查询,该数据库进行排序和搜索,但是如果我将它们保存在缓存中,我该如何做呢?我不想重复代码(枯燥!)。在我看来,您必须这样做 使用通用方法将对象加载到内存中,并将其缓存为列表/字典。。任何适合你的单身BL课程 然后,执行排序/搜索的Linq查询必须在BL类中的缓存对象集合上完成,而不是直接进入MySQL数据库 因此,
Order
对象列表
这些对象在我的应用程序的多个用户之间共享,并且在经常访问时很少更改,这使它们成为缓存的理想候选对象
我面临的问题是,我对我的MSSQL数据库进行LINQ查询,该数据库进行排序和搜索,但是如果我将它们保存在缓存中,我该如何做呢?我不想重复代码(枯燥!)。在我看来,您必须这样做
- 使用通用方法将对象加载到内存中,并将其缓存为列表/字典。。任何适合你的单身BL课程
- 然后,执行排序/搜索的Linq查询必须在BL类中的缓存对象集合上完成,而不是直接进入MySQL数据库
后续调用不会命中数据库,而只命中缓存的集合
您必须注意访问集合的线程是否安全。此外,您可能会包括一些刷新间隔,基本上是时间戳,根据这些时间戳,您可以在一些固定的间隔内刷新缓存。在我看来,您必须这样做
- 使用通用方法将对象加载到内存中,并将其缓存为列表/字典。。任何适合你的单身BL课程
- 然后,执行排序/搜索的Linq查询必须在BL类中的缓存对象集合上完成,而不是直接进入MySQL数据库
后续调用不会命中数据库,而只命中缓存的集合 您必须注意访问集合的线程是否安全。此外,您还可以包括一些刷新间隔,基本上是时间戳,根据这些时间戳,您可以在一些固定的间隔内刷新缓存