NET5+HotChocolate 12实现GraphQL查询ParentDomain为空的Domain记录
问题排查与正确查询写法
问题原因
你原来的查询不符合HotChocolate 12的导航属性过滤语法规则:导航属性对应的过滤参数是对象结构,直接赋值null不会被识别为空值判断逻辑,同时HotChocolate默认会将C#属性名转换为驼峰命名,字段名大小写不匹配也会导致过滤不生效。
正确查询写法
第一种(用is操作符判断空值,兼容性最好):
query { domains (where: { parentDomain: { is: null } }) { name } }
第二种(用exists操作符判断关联对象不存在,效果等同):
query { domains (where: { parentDomain: { exists: false } }) { name } }
注意事项
- 确保GraphQL查询中的字段名使用驼峰格式,C#定义的
ParentDomain对应GraphQL字段为parentDomain - 如果你自定义过HotChocolate的命名规则,需要按照你实际配置的字段名调整查询参数
- 上述写法基于HotChocolate默认过滤配置,如果你手动禁用过导航属性过滤能力需要先恢复默认配置
内容的提问来源于stack exchange,提问作者Aeseir
相关产品推荐
相关产品推荐

