如何解析在C#中的OData $过滤器

问题描述 投票:4回答:1

一旦处理过滤器

如何操作过滤器在后台,并希望过滤器查询参数的键值对?

表达想下面

“?$过滤器=((名称EQ‘约翰’或名称EQ‘格蕾丝保’)和(部门EQ‘财务与会计’))”

由于有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的核心API的网络支持。
  • 正则表达式 - 使用该stack overflow question,它似乎并不在我的情况下工作,因为我的第三个过滤器包含在&因此正则表达式失败的值。
  • 在该方法中ODataQueryOptions,但它给其中相同提到它不能被提取到关键值对的原始文本。

我使用ASP.NET 2.1的核心API网络与OData的V4集成

有没有一种方法来完成上述?

c# regex odata-v4 asp.net-core-2.1
1个回答
0
投票

我知道这是不是解决办法,但以防万一与你分享,如果它可以帮助你以后。这是为了匹配右侧的所有值“:”

/(?<=: )[\w ]+/gm
© www.soinside.com 2019 - 2024. All rights reserved.