我有一个要查询的简单架构,如下所示:
t2
但是“ graphiql”抛出以下错误,甚至没有运行我的查询。
{
subQuery {
subObjectGraph {
Name
}
}
}
我的架构有什么问题(如下)?我正在新建一个SubObject,所以我不明白为什么错误消息表示该值为空。
{
"errors": [
{
"message": "Expected non-null value, resolve delegate return null for \"$Api.Schema.Queries.MySubObjectGraphType\"",
"extensions": {
"code": "INVALID_OPERATION"
}
}
]
}
如果我将MySubObjectGraphType替换为StringGraphType,则代码可以正常工作,因此问题必须出在MySubObjectGraphType的配置上。
请帮助?我正在使用v2.4。
答案 0 :(得分:6)
您需要在MySubObjectGraphType
中为Startup.cs
添加服务注册
因此,该规则可以描述为“源自ObjectGraphType
的自定义类型必须在某个时候通过依赖注入进行注册”
例如在Startup.cs
中:
services.AddSingleton<MySubObjectGraphType>();
答案 1 :(得分:0)
您要在RootQuery的subQuery中返回GraphType。解析程序应仅返回DTO,而不能返回GraphType。
如果您尝试组织查询,则只需返回一个空对象。
Field<MySubQuery>(
name: "subQuery",
resolve: ctx => new {});
https://graphql-dotnet.github.io/docs/getting-started/query-organization