В OData есть способ упорядочить по первому элементу в массиве?

У меня есть конечная точка OData 4, которую я вызываю для отображения данных в таблице. В одном из столбцов есть набор данных, конкатенированных из массива строк в моем элементе. Есть ли способ упорядочить по первому элементу в массиве?

Мой элемент может выглядеть так:

[ { "FirstName": "John", "MiddleNames": [ "Harry", "Bobby", "Sue" ], "LastName": "Jones" }, ... more elements ]

и я хотел бы заказать по MiddleNames[0].

Спасибо за помощь! Документация по $orderby в лучшем случае скудна...

0 ответов

Это НЕ поддерживается в OData v4, спецификация не предоставляет синтаксис для нацеливания на определенные элементы в коллекции или массиве для выражений пути, а $orderby - это выражение пути. Тем не менее, в нем очень четко указаны поддерживаемые условия, поэтому в отсутствии этого ограничения это ограничение является намеренным.

5.1.1.15 Выражения пути
Свойства и свойства навигации типа объекта набора ресурсов, к которым обращается URL-адрес запроса, могут использоваться в качестве операндов или параметров функции, как показано в предыдущих примерах.

Свойства сложных свойств можно использовать с помощью того же синтаксиса, что и в путях к ресурсам, то есть путем указания имени сложного свойства, за которым следует косая черта (/) и имя свойства сложного свойства и т. Д.

Свойства и свойства навигации сущностей, связанных с целевой мощностью 0..1 или 1, можно использовать, указав свойство навигации, за которым следует косая черта (/), имя свойства связанной сущности и т. Д.

Если сложное свойство имеет значение NULL или никакая сущность не связана (в случае целевого числа элементов 0..1), его значение и значения его компонентов рассматриваются как NULL.

Другие вопросы по тегам