我有以下 API 请求:
...api/data/v8.0/rts_xrmsettings?$select=rts_name,rts_value,statecode&$filter=statecode eq 0 and (contains(rts_name, 'Sample') or contains(rts_name, 'Test'))
然而,数据集返回如下:
{"@odata.etag":"rts_name":"Test","rts_value":"Some Value","statecode":0},
{"@odata.etag":,"rts_name":"(Sample) Test Setting","rts_value":"Now You See Me","statecode":0},
{"@odata.etag":"rts_name":"(Sample) Test Inactive Setting","rts_value":"Now You Don't","statecode":1}
包括一个实体,statuscode=1
为什么要包括这个实体?
如果我将过滤器更改为filter=(contains(rts_name, 'Test') and statecode eq 0) or (contains(rts_name, 'Sample') and statecode eq 0)
收到所需的输出,但我正在尝试动态构建过滤器字符串,而通过代码创建这很麻烦。
就布尔代数而言,A.B + A.C = A.(B+C)
因此过滤器应该返回相同的结果,但事实并非如此。