如何在Odata中应用字符串查询筛选器

如何在Odata中应用字符串查询筛选器,odata,Odata,My Odata collection返回包含以下字段的集合: <d:ColorFlagInfo>Red,Blue</d:ColorFlagInfo> <d:ColorFlagInfo>Red,Green</d:ColorFlagInfo> <d:ColorFlagInfo>Black,Brown</d:ColorFlagInfo> 红色,蓝色 红,绿 黑色,棕色 有人能帮我构造一个Odata查询,该查询按一种或多

My Odata collection返回包含以下字段的集合:

<d:ColorFlagInfo>Red,Blue</d:ColorFlagInfo>

<d:ColorFlagInfo>Red,Green</d:ColorFlagInfo>


<d:ColorFlagInfo>Black,Brown</d:ColorFlagInfo>
红色,蓝色
红,绿
黑色,棕色
有人能帮我构造一个Odata查询,该查询按一种或多种特定颜色过滤:

我尝试了以下方法来获得特定的颜色:

?$filter=子字符串('Black',ColorFlagInfo)

?$filter=ColorFlagInfo%20eq%20‘黑色’


如何找到所有包含绿色的ColarFlagInfo?

在OData V3中,我们没有枚举类型。ODataV4可以

您的服务是用什么实现的?WebAPI OData或WCF DS

对于WebAPI OData:

  • 在V3中,“substringof”函数不能应用于枚举类型。 您需要附加所有可能的条件

    $filter=ColorFlagInfo均衡器“绿色”或ColorFlagInfo均衡器“红色、绿色”或

  • 在V4中,可以对枚举类型使用
    has
    运算符

    $filter=ColorFlagInfo具有命名空间。ColorFlagInfoTypeName'Green'


您能否分享有关ColorFlagInfo属性和包含类型的edm模型?$filter=substringof('Green',ColorFlagInfo)不起作用吗?现在如何通过枚举的int值进行搜索?我不想按名称空间搜索,我想按值搜索。@jameshanchock,这是可以做到的,请参见我的答案: