В 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.