我们的应用程序遵循为每个线程/HttpContext 维护一个 DataContext 的方法,使用 Rick Strahl 在他的博客中概述的 DataContextFactory 类,包括对 Richard 提到的 Key 的修改(使用 type.AssemblyQualifiedName)。
该解决方案看起来不错(尽管在大多数情况下,不同的方法可能会更好),但是在使用此解决方案时,我看到应用程序中出现了间歇性错误:
ExecuteReader 需要一个打开且可用的连接。连接的当前状态为关闭。
我使用以下属性访问整个代码中的数据上下文,这是我的 DataContext 类的一部分:
/// <summary>
/// Returns the current datacontext for the thread or HttpContext, creating one if it does not exist.
/// </summary>
public static SharedDataContext Current
{
get
{
return DataContextFactory.GetScopedDataContext<SharedDataContext>();
}
}
作为间歇性,我很难确定这一点。有谁知道我可能做错了什么,或者知道我如何能够调试这个问题?