2012-05-29 100 views
0

內的孩子我有一個像這樣WCF數據服務 - 擴大兒童

public class Permission 
{ 
    IEnumerable<Permission> Children {get;set;} 
} 

實體如何指定一個擴展查詢去深如需要,目前我使用

public IEnumerable<IManagePermission> GetRootPermissions() 
     { 
      return this.adminService.ManagePermissionViews.Expand("Children/Children/Children/Children").Where(item=>item.ParentPermissionId == null); 
     } 

但這很糟糕,因爲我不知道這個權限可能有多深嵌套,我認爲調用另一個查詢先找出它,然後使用該值構造嵌套參數。

但再次..蘇茨基..

回答

0

有沒有在協議的OData絕不目前要求這樣的行爲。最好的解決方案可能是使用不同的請求按需加載這些內容。

+0

理查德,這一般用於linq-to-X。 Linq和遞歸查詢不太匹配。如果必須阻止單獨的查詢,那麼使用遞歸查詢的數據庫視圖是最佳選擇。 SO有很多關於這方面的問題。 –