У меня есть запрос ODATA, который извлекает первую запись из таблицы Dynamics AX и игнорирует предложение $ filter, когда параметр $ top является первым параметром. Однако он извлекает правильную запись для условия $ filter, когда параметр $ top находится в конце запроса.
Вопрос: Как заставить сервер OData выполнять полный запрос независимо от того, где размещен параметр $ top?
следующие два случая возвращают идентичные результаты:
Случай 1: https://url/data/Users? $ top = 1
{
"@odata.context":"https://url/data/$metadata#Users","value":[
{
"@odata.etag":"W/\"J5zEx4NDg33OD2YyM4TEs5NTY6zNz7E0ND7U3Nic=\"",
"Id":"first_user_in_the_table",
"Alias":"first_user_in_the_table@domain.com",
"Name":"first_user_in_the_table"
}
]
}
Случай 2: https://url/data/Users? $ top = 1 & $ filter = Alias% 20eq% 20% 27 specific_user@domain.com% 27
{
"@odata.context":"https://url/data/$metadata#Users","value":[
{
"@odata.etag":"W/\"J5zEx4NDg33OD2YyM4TEs5NTY6zNz7E0ND7U3Nic=\"",
"Id":"first_user_in_the_table",
"Alias":"first_user_in_the_table@domain.com",
"Name":"first_user_in_the_table"
}
]
}
Однако, когда я перемещаю параметр $ top в конец запроса строка Я получаю правильный результат.
Случай 3: https://url/data/Users? $ filter = Alias% 20eq% 20% 27 specific_user@domain.com% 27 & $ top = 1
{
"@odata.context":"https://url/data/$metadata#Users","value":[
{
"@odata.etag":"W/\"Jz3kz4Nj5g2N6zcz7MCw81Nj9M3M2TU3w4NT4c54Jw==\"",
"Id":"specific_user",
"Alias":"specific_user@domain.com",
"Name":"The Specific User I Actually Want"
}
]
}