Вопрос

filter и orderBy в odata

Здравствуйте!
Помогите, пожалуйста, разобраться с проблемой, как объединить фильтрацию и сортировку в oData?

фильтрация - работает

http://url/0/ServiceModel/EntityDataService.svc/ContactCollection?$sele…

сортировка- работает

http://1url/0/ServiceModel/EntityDataService.svc/ContactCollection?$select=Name&$orderby=Name

сортировка и фильтрация- НЕ работает
http://url/0/ServiceModel/EntityDataService.svc/ContactCollection?$sele…

выходит ошибка

 

<error xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">

<code>4</code>

<message xml:lang="">

The query parameter '$orderBy' begins with a system-reserved '$' character but is not recognized.

</message>

<innererror>

<message>

The query parameter '$orderBy' begins with a system-reserved '$' character but is not recognized.

</message>

<type>System.Data.Services.DataServiceException</type>

<stacktrace>

at System.Data.Services.HttpContextServiceHost.VerifyQueryParameters() at System.Data.Services.DataServiceHostWrapper.VerifyQueryParameters() at System.Data.Services.DataService`1.ProcessIncomingRequestUri() at System.Data.Services.DataService`1.HandleRequest()

</stacktrace>

</innererror>

</error>

 

не могу понять что не так.

Нравится

4 комментария
Лучший ответ

Проверьте такой вариант у меня ошибки нет

http://127.0.0.1:520/0/ServiceModel/EntityDataService.svc/ContactCollection?$select=Name&$orderby=Name&$filter=Phone ne '12'

 

Григорий Чех,

вместо амперсантов ставить запятые? все выражение взять в скобки?
не очень понимаю что нужно изменить

http://url/0/ServiceModel/EntityDataService.svc/ContactCollection?($sel…)  - вот так не работает, а с запятыми - просто не фильтрует

 

Проверьте такой вариант у меня ошибки нет

http://127.0.0.1:520/0/ServiceModel/EntityDataService.svc/ContactCollection?$select=Name&$orderby=Name&$filter=Phone ne '12'

 

Григорий Чех, да, спасибо, заработало

Показать все комментарии