[英]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
样式运算符,但它确实支持NOT
和IN
。
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.