0

我按照这里的帖子使用 Entity Framework 6.0 设置我的 WCF 数据服务:http: //blogs.msdn.com/b/astoriateam/archive/2013/10/02/using-wcf-data-services-5-6 -0-with-entity-framework-6.aspx

将 DataService 转换为 EntityFrameworkDataService 后,我无法编译我的项目,这是因为我对 CurrentDataSource 的调用并未翻译我的 Context 上的所有方法。使用常规 DataService,我能够调用 CurrentDataSource.getEmployees() 复杂类型并且一切正常。但是,使用新的 EntityFrameworkDataService getEmployees() 不再可用。我在这里想念什么?

4

1 回答 1

0

我们通过创建 DBContext 来解决这个问题,将其保存在服务类的属性中,然后将其注入服务提供者。然后,只要我们想使用它,我们就可以访问该属性。

protected override EntityFrameworkDataServiceProvider2<CustomDBContext> CreateDataSource()
{

    var dbContext = ContextHelper.GetContext();

    this.DBContext = dbContext;

    // Get the underlying ObjectContext for the DBContext. 
    var context = ((IObjectContextAdapter)this.DBContext).ObjectContext;
    context.ContextOptions.ProxyCreationEnabled = false;

    // Return the underlying context. 
    var args = new DataServiceProviderArgs(this, dbContext, {}, false);

    var provider = new EntityFrameworkDataServiceProvider2<CustomDBContext>(args);

    return provider;

}

其中 CustomDBContext 是您的上下文的名称。

然后用 this.DBContext 替换所有对 CurrentDataSource 的调用。

于 2014-05-29T07:44:47.350 回答