можно отсортировать свойство коллекции отложенной загрузки на объекте wcf dataservice - PullRequest
0 голосов
/ 23 октября 2010

У меня есть служба данных wcf, которую я вызываю из Silverlight, и я расширяю свойство коллекции для объекта, и я хочу иметь возможность сортировать элементы в расширенном свойстве, указав его в запросе.

Есть ли способ сделать это?

вот расширение linq: - Я хочу, чтобы коллекция Видео сортировалась по свойству SortOrder в сущности Видео.

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

спасибо Michael

1 Ответ

0 голосов
/ 25 октября 2010

В настоящее время это невозможно в протоколе 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>; 
...