编程语言
首页 > 编程语言> > 如何在C#中解析OData $filter

如何在C#中解析OData $filter

作者:互联网

操纵odata过滤器

如何操作后端中的过滤器并想要过滤查询参数的键值对?

表达式如下

“?$filter =((Name eq ‘John’ or Name eq ‘Grace Paul’) and (Department eq ‘Finance and Accounting’))”

由于有2个过滤器连接在一起.我怎样才能得到像这样的价值观

Filter 1:
    Key: Name
    Operator: eq
    Value: Name

Operator: or

Filter 2:
    Key: Name
    Operator: eq
    Value: Grace Paul

Operator: and

Filter 3:
    Key: Department
    Operator: eq
    Value: Finance and Accounting

我试过了

> ODataUriParser,但它似乎不支持ASP.NET核心2.1 web api.
>正则表达式 – 使用这个stack overflow question,它似乎不适用于我的情况,因为我的第三个过滤器包含并且在值和&所以正则表达式失败了.
>方法中的ODataQueryOptions,但它给出了原始文本,它无法提取到像上面提到的键值对.

我正在使用ASP.NET Core 2.1 Web API与OData v4集成

有没有办法实现上述目标?

解决方法:

我知道这不是解决方案,而是与您分享以防万一它以后会帮助您.这是为了匹配’:’右侧的所有值

/(?<=: )[\w ]+/gm

标签:c,regex,asp-net-core-2-1,odata-v4
来源: https://codeday.me/bug/20190710/1425313.html