帶有Entity Framework 6.0複雜類型的WCF數據服務5.6

entity-framework-6 wcf-data-services

我按照這裡的帖子使用Entity Framework 6.0設置我的WCF數據服務: http//blogs.msdn.com/b/astoriateam/archive/2013/10/02/using-wcf-data-services-5-6 -0-與實體框架,6.aspx

在將DataService轉換為EntityFrameworkDataService之後,我無法編譯我的項目,這是因為我對CurrentDataSource的調用沒有翻譯我的Context上的所有方法。使用常規DataService,我能夠調用CurrentDataSource.getEmployees()複雜類型,一切正常。但是,使用新的EntityFrameworkDataService,getEmployees()不再可用。我在這裡想念的是什麼?

熱門答案

我們通過創建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的所有調用。




許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因