Filter 用于基于多个ID筛选对象的OData查询

Filter 用于基于多个ID筛选对象的OData查询,filter,postman,odata,asp.net-core-webapi,Filter,Postman,Odata,Asp.net Core Webapi,考虑不带任何过滤器的api响应,如下所示: [ { "Account": { "AccountID": "1", "Name": "Acc1" } }, { "Account": {

考虑不带任何过滤器的api响应,如下所示:

[
        {
            "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