在请求期间为消费服务提供数据上下文?

时间:2011-07-31 16:26:50

标签: c# wcf entity-framework

简单地说,我的应用程序的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相同的解决方案。

我可以在哪里存储服务请求的数据上下文?

1 个答案:

答案 0 :(得分:1)

您必须为IExtension创建OperationContext实施。 Here is some example如何做到这一点。