GraphQL.NET错误消息没有道理

时间:2019-09-26 15:49:52

标签: graphql graphql.net

我有一个成功支持查询的GraphQL模式。但是,当尝试进行突变时,出现以下奇怪错误: Error "message": "GraphQL.Validation.ValidationError: Cannot query field \"id\" on type \"IdeaInput\". Did you mean \"id\"?"

以下是突变的输入类型:

    public class IdeaInputType : InputAuditableGraphType<Idea>
    {
        public IdeaInputType()
        {
            Name = "IdeaInput";
            Description = "Create idea";
            Field(x => x.Id);
            Field(x => x.Name, true);
            Field(x => x.Summary);
        }
    }

数据:

enter image description here

对于其他字段,将返回此错误。我什至尝试显式命名字段,但错误仍然存​​在。当预期名称和接收名称表面上相同时,会导致失败的原因是什么?

1 个答案:

答案 0 :(得分:0)

万一这对任何人都有帮助,我发现我为突变使用了错误的字段类型。 字段必须具有查询类型,而 argument 必须具有突变(输入)类型:

public MyMutation()
{
    Name = "Root mutation";
    Field<IdeaType>(
                   "createIdea",
                   arguments: new QueryArguments(new QueryArgument<NonNullGraphType<IdeaInputType>> { Name = "idea" }),
                   resolve: context => {...}
}

这说明了为什么错误中的预期字段名称和接收的字段名称相同。不同类型的名称相同。