嗨,我想知道在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.
我该如何在后端操纵过滤器并想要过滤器查询参数的键值对?
表达式如下
“?$ 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)
我尝试过
我正在使用具有OData v4集成的ASP.NET Core 2.1 Web API
有没有办法实现以上目标?