OData - 在同一字段上使用多个条件缩短过滤器查询
OData - shortening filter query with multiple conditions on same field
我正在尝试执行一个相当长的 OData 过滤器来检索满足多个条件的实体集合。
作为一个简单的解决方案,我目前正在做这样的事情:
$filter=(name eq 'A' or name eq 'B' or name eq 'C') and (address eq 'addr1' or address eq 'addr2')
在示例中,我定位了 2 个字段:'name' 和 'address'。对于这两个字段,我都按(可能很长)符合条件的值列表进行过滤。
虽然所提供的查询已经有效,但实际上存在一个限制,即整个 API 调用的长度的字符限制(大约 ~8000 个字符)。如果用例扩展,查询长度很可能会超过字符限制。
我试过类似这样的方法来稍微截断查询:
$filter=(name eq 'A' or 'B' or 'C') ...
它不起作用(语法错误),但我想知道是否有更好的方法来构造查询以便长度可以更短?
您正在寻找 in
运算符
$filter=name in ('A', 'B', 'C')
我正在尝试执行一个相当长的 OData 过滤器来检索满足多个条件的实体集合。
作为一个简单的解决方案,我目前正在做这样的事情:
$filter=(name eq 'A' or name eq 'B' or name eq 'C') and (address eq 'addr1' or address eq 'addr2')
在示例中,我定位了 2 个字段:'name' 和 'address'。对于这两个字段,我都按(可能很长)符合条件的值列表进行过滤。
虽然所提供的查询已经有效,但实际上存在一个限制,即整个 API 调用的长度的字符限制(大约 ~8000 个字符)。如果用例扩展,查询长度很可能会超过字符限制。
我试过类似这样的方法来稍微截断查询:
$filter=(name eq 'A' or 'B' or 'C') ...
它不起作用(语法错误),但我想知道是否有更好的方法来构造查询以便长度可以更短?
您正在寻找 in
运算符
$filter=name in ('A', 'B', 'C')