我按照此处的帖子使用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()不再可用。我在这里缺少什么?
答案 0 :(得分: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的所有调用。