相关疑难解决方法(0)

如何用C#中的正则表达式解析OData $ filter?

嗨,我想知道在C#中解析OData $过滤器字符串的最佳方法是什么

/ API/organizations?$ filter ="name eq'Facebook'或name eq'Twitter'和subscriber gt'30''

应该返回所有名称为Facebook或Twitter且拥有超过30个订阅者的组织.我已经研究了很多,但找不到任何不围绕WCF的解决方案.我正在考虑使用Regex并对它们进行分组,因此我有一个Filter类列表,这样:

Filter
    Resource: Name
    Operator: Eq
    Value: Facebook
Filter
    Resource: Name
    Operator: Eq
    Value: Twitter
Filter
    Resource: Subscribers
    Operator: gt
    Value: 30
Run Code Online (Sandbox Code Playgroud)

但我很难过如何处理ANDs/ORs.

c# regex odata

13
推荐指数
3
解决办法
1万
查看次数

如何在C#中解析OData $ filter

操作odata过滤器

我该如何在后端操纵过滤器并想要过滤器查询参数的键值对?

表达式如下

“?$ filter =((名称eq'John'或名称eq'Grace Paul')和(部门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
Run Code Online (Sandbox Code Playgroud)

我尝试过

  • ODataUriParser,但似乎不支持ASP.NET core 2.1 Web api。
  • 正则表达式 -使用此堆栈溢出问题,在我的情况下它似乎不起作用,因为我的第三个过滤器包含值&,因此正则表达式失败。
  • 方法中的ODataQueryOptions,但它将无法提取的原始文本提供给上述键值对。

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

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

c# regex odata-v4 asp.net-core-2.1

6
推荐指数
1
解决办法
981
查看次数

标签 统计

c# ×2

regex ×2

asp.net-core-2.1 ×1

odata ×1

odata-v4 ×1