考虑没有任何过滤器的api响应,如下所示,
[
{
"Account": {
"AccountID": "1",
"Name": "Acc1"
}
},
{
"Account": {
"AccountID": "2",
"Name": "Acc2"
}
},
{
"Account": {
"AccountID": "3",
"Name": "Acc3"
}
},
{
"Account": {
"AccountID": "4",
"Name": "Acc4"
}
}
...
...
]
我使用odata查询过滤帐户如下,当我有数组的帐户id。
.......apiurl?$filter=Account/AccountID eq '1' OR Account/AccountID eq '2' OR Account/AccountID eq '3'
这似乎有效。但是当帐户id数组的值越多,uqi查询的长度就会增加。
是否有其他选项只使用一次字段Account/AccountID在uri中检查id数组
提前感谢。
当您尝试过滤相同的属性但不同的值时,使用in
是很好的做法。
在您的例子中,它看起来像
.......apiurl?$filter=Account/AccountID in ('1', '2', '3')
请注意对数据库的查询。如果你有查询像WHERE AccountId = '1' OR AccountId = '2'
切换到WHERE AccountId IN ('1', '2')
在服务器端-只是优化的建议。