【发布时间】:2020-06-17 07:50:29
【问题描述】:
我有一个 ODATA 查询,它从 Dynamics AX 表中提取第一条记录,并在 $top 参数是第一个参数时忽略 $filter 子句。但是,当 $top 参数位于查询末尾时,它会为 $filter 子句提取正确的记录。
问题:无论 $top 参数放在哪里,如何让 OData 服务器支持完整查询?
以下两种情况返回相同的结果:
案例 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%27specific_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%27specific_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"
}
]
}
【问题讨论】:
-
有什么问题?
-
无论 $top 参数放在哪里,如何让 OData 服务器支持完整查询?
标签: odata dynamics-ax-2012 dynamics-ax7