如何使用Code First使用WCF数据服务生成上下文类?

时间:2010-12-10 02:45:15

标签: entity-framework-4

如何使用Code First生成的上下文类与WCF DataServices?

我可以将POCO模板生成的上下文类与WCF DataServices一起继承自ObjectContext,并在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;
        }
    }

但是,CTP5生成的上下文类不可能以相同的方式生成,因为它不从ObjectContext继承,而是从DbContext继承。

如何解决这个问题?

提前致谢

1 个答案:

答案 0 :(得分:0)

您可以通过IObjectContextAdapter接口访问ObjectContext来完成此任务。

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