OData查询,基于多个id筛选对象



考虑没有任何过滤器的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')在服务器端-只是优化的建议。

相关内容

  • 没有找到相关文章

最新更新