在OData V4中,我试图扩展一个对象(这是一个数组)和基于数组对象是否为空的过滤器。例如:请求
ODataService/v1/ODataServiceName.svc/v1/ABCRevisions?$expand=Status
反应{
"@odata.context": "ODataService/v1/ODataServiceName.svc/v1/$metadata#ABCRevisions(Status())",
"value": [
{
"Revision": "A",
"Identifier": "032103",
"Status": [
{
"type": "Status",
"Name": "Approved"
},
{
"type": "Status",
"Name": "Released"
}
]
},
{
"Revision": "A",
"Identifier": "032097",
"Status": []
}]}
基本上,我想过滤的响应"状态"不是空
我试了下面这个
。ODataService/v1/ODataServiceName.svc/v1/ABCRevisions?$expand=Status($filter=Name ne null)
这个方法不起作用
b。ODataService/v1/ODataServiceName.svc/v1/ABCRevisions?$expand=Status/$Order
它给了我状态计数,但没有相应地过滤响应反应-
{
"@odata.context": "ODataService/v1/ODataServiceName.svc/v1/$metadata#ABCRevisions(Status())",
"value": [
{
"Revision": "A",
"Identifier": "032103",
"Status@odata.count": 2
},
{
"Revision": "A",
"Identifier": "032097",
"Status@odata.count": 0
}]}
有人能告诉我如何过滤对象状态不是空的吗?关于
我会在$filter
查询中使用any
来只返回具有至少一个状态的实体。
ODataService/v1/ODataServiceName.svc/v1/ABCRevisions?$expand=Status&$filter=Status/any()
或检查count是否不等于0
ODataService/v1/ODataServiceName.svc/v1/ABCRevisions?$expand=Status&$filter=Status/$count ne 0