Silverlight 4.0 我可以对wcf dataservice实体上的延迟加载集合属性进行排序吗

Silverlight 4.0 我可以对wcf dataservice实体上的延迟加载集合属性进行排序吗,silverlight-4.0,linq-to-entities,wcf-data-services,Silverlight 4.0,Linq To Entities,Wcf Data Services,我有一个从Silverlight调用的wcf dataservice,我正在扩展一个实体上的集合属性,我希望能够通过在查询中指定它来对扩展属性中的项进行排序 有办法做到这一点吗 以下是扩展linq:-我希望视频集合按照视频实体上名为SortOrder的属性进行排序 var expandQuery = (from s in dataService.Series.Expand("Videos") where s.SeriesGUID == series.SeriesGUID select s) as

我有一个从Silverlight调用的wcf dataservice,我正在扩展一个实体上的集合属性,我希望能够通过在查询中指定它来对扩展属性中的项进行排序

有办法做到这一点吗

以下是扩展linq:-我希望视频集合按照视频实体上名为SortOrder的属性进行排序

var expandQuery = (from s in dataService.Series.Expand("Videos")
where s.SeriesGUID == series.SeriesGUID
select s) as DataServiceQuery<Series>;
var expandQuery=(来自dataService.Series.Expand(“视频”)中的s)
其中s.SeriesGUID==series.SeriesGUID
选择s)作为DataServiceQuery;
谢谢
Michael

这在OData协议中目前是不可能的,因为$orderby查询选项仅适用于查询的“根”(在您的示例中是序列实体)。 您可以在客户端上对结果进行排序以解决此问题。 或者,如果确实需要在服务器上执行排序,则可以为此特定查询定义服务操作

或者,如果您也不需要从查询中返回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>; 
var query=(来自dataService.Series中的s)
其中s.SeriesGUID==series.SeriesGUID
选择s.Videos).OrderBy(v=>v.SortOrder)作为DataServiceQuery;

我可以将linq查询返回的视频添加到已加载到客户端的系列中吗?有点像手动展开。我正在将列表框数据绑定到当前选定系列的videos属性,如果可能的话,我真的希望能够将videos保留在系列实例中。如果视频是DataServiceCollection实例,您应该能够使用其加载方法从DataServiceQuery.Vitek加载,我试图实现上面的查询示例,但我在v变量上遇到了一个错误-它告诉我v没有SortOrder属性-它看起来像v是一个DataServiceCollection-不是video我试图调整查询以返回DataServiceCollection,但它告诉我,我的linq qeury无法转换为uri.varvideoquery=(来自dataService.Series中的s,其中s.SeriesGUID==Series.SeriesGUID选择s.Videos)作为DataServiceQuery;