目前,我使用HttpContext.Current.Items作为后备存储创建了我的自定义PerWebRequestLifetimeManager。我使用了Linq2Sql DataContext的终身经理
Eveything工作正常,直到我需要使用Cache来存储数据(5分钟)。 5分钟后,我需要从数据库中检索数据并将其放入缓存中。为此,我需要使用Linq2Sql DataContext来检索数据。但在此期间,HttpContext.Current为null,因为缓存过期时发生了这种情况;不在Web请求中。
那么,我应该在这种情况下使用什么样的LifetimeManager?
提前致谢。
答案 0 :(得分:0)
您需要一个长期存在的DataConext?使用Container LifeTimeManager。我将创建一个驻留在应用程序级别的Container(可能在您的Global.asax中),然后使用它来解析此特定方案的DataContext。
我会避免希望在Cache中保留这些东西,相反,如果可以,你可以看看可能异步运行该任务。
希望这有帮助。