有没有办法通过查看以前传递的参数来缓存LINQ to SQL查询并一起绕过数据库?
我知道L2S会缓存一些数据库调用,但我正在寻找一个永久解决方案,即使应用程序重新启动,缓存重新加载,也不会再次询问数据库。
C#是否有任何框架?
答案 0 :(得分:3)
Linq-to-SQL并不是真的为此设计的,上下文实际上是为了短生命周期而不是长期生命周期。如果你想缓存一些特定的查询,我建议使用不同的媒体,而不是实际依赖于上下文本身。
这是一个了解我的意思的选项:Caching the results of LINQ queries
或者,如果有一些事情你只是不停地访问很少改变,可以考虑缓存List<T>
或其他形式的结果,并在需要时强制重新缓存。
答案 1 :(得分:0)
当您说您希望结果在应用程序重新启动时缓存时,听起来您有一个occasionally connected application,如果您丢失网络连接,您希望保留结果缓存。如果情况确实如此,请查看Sync Framework,这正是如此。它还允许您更改缓存的数据,并在客户端重新获得连接时,传输数据并解决任何冲突。由于它将缓存持久化到磁盘(通常使用SQL Server Compact),因此它将在应用程序重新启动(甚至计算机重新启动)后继续存在。