代码之家  ›  专栏  ›  技术社区  ›  MIantosca

我可以对wcf数据服务实体上的延迟加载集合属性进行排序吗

  •  0
  • MIantosca  · 技术社区  · 14 年前

    我有一个从Silverlight调用的wcf数据服务,我正在扩展一个实体的collection属性,我希望能够通过在查询中指定扩展属性中的项来对其进行排序。

    有办法吗?

    var expandQuery = (from s in dataService.Series.Expand("Videos")
    where s.SeriesGUID == series.SeriesGUID
    select s) as DataServiceQuery<Series>;
    

    谢谢 迈克尔

    1 回复  |  直到 14 年前
        1
  •  0
  •   Vitek Karas MSFT    14 年前

    在OData协议中,这是当前不可能的,因为$orderby查询选项仅适用于查询的“根”(在您的示例中是Series实体)。 你可以在客户机上对结果进行排序来解决这个问题。

    或者,如果您也不需要从查询返回Series实例,您可以发出类似/Series(guid'…')/Videos的查询?$orderby=SortOrder哪个有效。要在LINQ中执行此操作,它将如下所示:

    var query = (from s in dataService.Series 
    where s.SeriesGUID == series.SeriesGUID 
    select s.Videos).OrderBy(v => v.SortOrder) as DataServiceQuery<Video>;