Entity framework 4 如何将代码首先生成的上下文类与WCF数据服务一起使用?

Entity framework 4 如何将代码首先生成的上下文类与WCF数据服务一起使用?,entity-framework-4,Entity Framework 4,如何将代码首先生成的上下文类与WCF数据服务一起使用 我可以将从ObjectContext继承的POCO模板生成的上下文类与WCF数据服务结合使用,并在WCF服务中进行以下配置: public class WcfDataService : DataService< NorthwindEntities > { public static void InitializeService(DataServiceConfiguration config)

如何将代码首先生成的上下文类与WCF数据服务一起使用

我可以将从ObjectContext继承的POCO模板生成的上下文类与WCF数据服务结合使用,并在WCF服务中进行以下配置:

public class WcfDataService : DataService< NorthwindEntities >
    {
        public static void InitializeService(DataServiceConfiguration config)
        {
            config.SetEntitySetAccessRule("*", EntitySetRights.AllRead);
            config.SetServiceOperationAccessRule("*", ServiceOperationRights.All);
            config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2;
        }

        protected override NorthwindEntities CreateDataSource()
        {
            var ctx = new NorthwindEntities();
            ctx.ContextOptions.ProxyCreationEnabled = false;
            return ctx;
        }
    }
公共类WcfDataService:DataService
{
公共静态void InitializeService(DataServiceConfiguration配置)
{
config.SetEntitySetAccessRule(“*”,EntitySetRights.AllRead);
config.SetServiceOperationAccessRule(“*”,ServiceOperationRights.All);
config.DataServiceBehavior.MaxProtocolVersion=DataServiceProtocolVersion.V2;
}
受保护的覆盖NorthwindEntities CreateDataSource()
{
var ctx=新的NorthwindEntities();
ctx.ContextOptions.ProxyCreationEnabled=false;
返回ctx;
}
}
然而,CTP5生成的上下文类不可能以同样的方式实现,因为它不是从ObjectContext继承的,而是从DbContext继承的

如何解决这个问题


提前感谢

您可以通过IObjectContextAdapter接口访问ObjectContext来实现这一点

protected override NorthwindEntities CreateDataSource()
{
    var ctx = new NorthwindEntities();
    ((IObjectContextAdapter)ctx).ObjectContext
         .ContextOptions.ProxyCreationEnabled = false;
    return ctx;
}

谢谢你的回答,但它不起作用。然而,我在这里找到了解决方案,它仍然不是解决这个问题的最终方法,我意识到它需要WCF数据服务团队的一些变通方法,正如上面提到的