我有一个多对多的数据库关系。我想用Odata过滤哪些父母没有孩子。
实施例。学生和班级。学生可以有零个,一个或多个班级。寻找特定班级的学生很容易。
?$filter=Classes/any(x: x/Name eq 'Math 101')
多个也很容易
?$filter=Classes/any(x: x/Name eq 'Math 101' or x/Name eq 'English 101')
但我的问题是,如何找到没有课程的学生。以下都不是。
?$filter=Classes/any(x: x/Name eq '')
?$filter=Classes/any(x: x/Name eq null)
?$filter=Classes eq null
我觉得这应该很容易,但是我的google-fu让我失望了。也许有某种Classes.count()我可以比较为零?
提前致谢。
答案 0 :(得分:2)
你可以在这样的空any
前面使用一个不是这样的:
?$filter=not Classes/any(x: true)
以下是TripPin OData示例服务的一个工作示例:
答案 1 :(得分:0)
$filter = Classes/$count eq 0
如果要解决此问题,您可以跟踪此PR https://github.com/OData/WebApi/pull/738