0

我正在使用WCF數據服務5.0與EF DbContext。WCF數據服務5.0 + DbContext:如何返回相關實體?

我看到老的文章,說你可以使用Expand和LoadProperty來讓WCF返回一個請求中的相關實體。

我看到DbContext的唯一等價物是Include,但這似乎不起作用。

有什麼辦法可以在使用DbContext時加載所有相關記錄?

我使用下面的代碼(一個CategoryGroup可以包含很多類別的實體):

[WebGet] 
    public IQueryable<CategoryGroup> GetAllCategories(string activationCode) 
    { 
     try 
     { 
      var db = this.CurrentDataSource; 

      var licence = db.Licenses 
       .Include("Contact") 
       .FirstOrDefault(); 

      if (licence != null) 
      { 
       var customerId = licence.Contact.CustomerId; 

       return db.CategoryGroups.Include("Categories").Where(r => r.CustomerId == customerId); 
      } 
     } 
     catch(Exception ex) 
     { 

     } 

     return new List<CategoryGroup>().AsQueryable(); 
    } 

此功能只返回了的OData格式CategoryGroup實體(不包括相關類別的實體)。

回答

1

目前WCF DS服務器不能自動擴展。因此,在上面的代碼中包含Include對服務操作的響應沒有影響。擴展只能由客戶端通過$ expand查詢選項來請求。