简单地说,我的应用程序的EF模型由网站本身使用,因此我使用以下扩展方法为请求的持续时间授予上下文:
public static class HttpContextExtensions
{
internal const string _contextDataKey = "dataContext";
public static EntityDataModelContext GetDataContext(this HttpContext httpContext)
{
if (httpContext == null) // services
return new EntityDataModelContext();
if (httpContext.Items[_contextDataKey] == null)
httpContext.Items.Add(_contextDataKey, new EntityDataModelContext());
return (EntityDataModelContext)httpContext.Items[_contextDataKey];
}
}
当新创建的WCF服务试图获取数据上下文时,我偶然发现服务在我的应用程序中没有HttpContext
这一事实。
现在我在这里提供的解决方案“有效”,但我宁愿采用与HttpContext
相同的解决方案。
我可以在哪里存储服务请求的数据上下文?