Подтвердить что ты не робот

Фильтр OData $с несколькими предикатами

Если у меня есть две сущности в моей модели, "Люди" и "Адреса", а у конкретного Лица есть ноль или более адресов, доступ к которым осуществляется через свойство навигации AddressList, могу ли я написать запрос OData, который отвечает на следующий вопрос:/p >

"Какие люди имеют фамилию, заканчивающуюся в Смиту и по крайней мере один адрес?"

Мне кажется, что я могу сделать только один предикат, например

http://localhost:55100/DemographicsDataService.svc/People? $filter = endswith (LastName, 'Smith')

(Я еще не убежден, что даже могу написать $filter для обработки второго предиката.. в этом случае предположим, что я пытаюсь ответить на вопрос: "Фамилия заканчивается кузнецом и именем, начинающимся с Мэри" )

4b9b3361

Ответ 1

Вы можете точно комбинировать предикаты в $filter. Например:

/People?$filter=endswith(LastName,'Smith') and startswith(FirstName,'Mary')

Подробнее о поддерживаемых операторах см. на этой странице: http://www.odata.org/documentation/odata-version-2-0/uri-conventions#FilterSystemQueryOption В настоящее время OData не имеет возможности выразить вопрос "Люди, имеющие хотя бы один адрес". В зависимости от ваших данных может оказаться возможным загрузить все Люди, выполняющие первые критерии, и определить те, у кого есть адрес на клиенте.