繁体   English   中英

Odata 是否支持“不在”运算符?

[英]Does Odata support “not in” operator?

我试图在 odata 中使用not in运算符。 那么到底支持不支持呢?

如果是,那么您能否举一些例子。

我正在浏览这篇文章并尝试但未能成功。 https://github.com/OData/odata.net/issues/1478

链接的 git hub 问题https://github.com/OData/odata.net/issues/1478 中的评论实际上表明NOT IN 的支持有多种变化,即使没有一个操作符。

OData v4 的 .Net 实现确实支持用于谨慎定义值数组的IN 运算符,它不支持NOT-IN样式运算符,但它确实支持NOTIN

NOT简单地否定表达式结果,但我们也可以通过将表达式结果等同于false来复制NOT功能。

我找不到可以共享的公开示例,但我的本地项目在以下查询中没有任何问题:

尽管多余,但第二个查询表明IN的结果是一个布尔表达式,并且您可以进一步将该表达式与更多条件链接起来。

    ~/OData/Facilities?$filter=Entity/Title in ('Abbotsford','test')
    ~/OData/Facilities?$filter=Entity/Title in ('Abbotsford','test') eq true

返回:

{
    "@odata.context": "http://localhost:16486/odata/$metadata#Facilities(FacilityType,Id,Entity(Title))",
    "value": [
        {
            "FacilityType": "None",
            "Id": 1081,
            "Entity": {
                "Title": "Abbotsford"
            }
        },
        {
            "FacilityType": "None",
            "Id": 2009,
            "Entity": {
                "Title": "test"
            }
        },
        {
            "FacilityType": "None",
            "Id": 8046,
            "Entity": {
                "Title": "test"
            }
        }
    ]
}

不在

~/OData/Facilities?$filter=not(Entity/Title in ('Abbotsford','test'))
~/OData/Facilities?$filter=Entity/Title in ('Abbotsford','test') eq false
{
    "@odata.context": "http://localhost:16486/odata/$metadata#Facilities(FacilityType,Id,Entity(Title))",
    "value": [
        {
            "FacilityType": "None",
            "Id": 1065,
            "Entity": {
                "Title": "Sleepy Hollow Templestowe Lower"
            }
        },
        {
            "FacilityType": "None",
            "Id": 13076,
            "Entity": {
                "Title": "Peach Meadows"
            }
        }
    ]
}

如果您的模型具有可寻址的集合或数组

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM