我有一个当前使用当前 HttpContext 来存储 LINQ 数据上下文的 Web 应用程序。根据Rick Strahl 的博客,基于每个用户的当前请求的上下文是持久的:
string ocKey = "ocm_" + HttpContext.Current.GetHashCode().ToString("x")
Thread.CurrentContext.ContextID.ToString();
if (!HttpContext.Current.Items.Contains(ocKey))
{
// Get new Data Context and store it in the HTTP Context
}
但是,我有一些从 global.asax 文件执行的脚本,它们没有HttpContext。 HttpContext.Current 是 NULL,因为服务器是发出“请求”的服务器。
是否有可用于存储数据上下文的等效对象?所以我不必担心重新创建它和附加/分离对象?我只想在我的流程的整个生命周期中保留上下文。
更新:
我目前正在尝试在我的 DAL 助手类中使用静态变量。在第一次调用类中的一个方法时,DataContext 被实例化,并存储在静态变量中。在我的过程结束时,我调用另一个在 DataContext 上调用 Dispose 的方法,并将静态变量设置为 NULL。