Filter 用于基于多个ID筛选对象的OData查询
考虑不带任何过滤器的api响应,如下所示:Filter 用于基于多个ID筛选对象的OData查询,filter,postman,odata,asp.net-core-webapi,Filter,Postman,Odata,Asp.net Core Webapi,考虑不带任何过滤器的api响应,如下所示: [ { "Account": { "AccountID": "1", "Name": "Acc1" } }, { "Account": {
[
{
"Account": {
"AccountID": "1",
"Name": "Acc1"
}
},
{
"Account": {
"AccountID": "2",
"Name": "Acc2"
}
},
{
"Account": {
"AccountID": "3",
"Name": "Acc3"
}
},
{
"Account": {
"AccountID": "4",
"Name": "Acc4"
}
}
...
...
]
当我有账户ID数组时,我使用odata查询过滤账户,如下所示。
.......apiurl?$filter=Account/AccountID eq '1' OR Account/AccountID eq '2' OR Account/AccountID eq '3'
这似乎有效。但是,当帐户ID数组具有更多值时,uqi查询长度就会增加
是否有其他选项仅在uri中使用一次Account/AccountID字段来检查ID数组
提前感谢。当您尝试筛选相同属性但不同值时,最好在中使用
在你的情况下,这看起来像
.......apiurl?$filter=Account/AccountID in ('1', '2', '3')
请注意对数据库的查询。
如果您有像WHERE AccountId='1'或AccountId='2'
这样的查询,可以在服务器端将它们切换到WHERE AccountId IN='1','2')
,这只是优化建议。这是否回答了您的问题?您可以在
中使用,例如('Milk','Cheese')中的$filter=Name