NET的GraphQL错误:未映射的选择字段

时间:2019-03-31 15:47:51

标签: c# asp.net-core graphql

我只是在学习.NET Core和GraphQL,无法从Web上获得一个示例(我已经尝试了十二个)来工作。他们都在使用这个库https://graphql-dotnet.github.io,每次我尝试使用有效的GraphQL查询访问端点时,都会得到以下响应:

{
    "errors": [
        {
            "message": "Unmapped selection Field",
            "extensions": {
                "code": "EXECUTION_ERROR"
            }
        }
    ]
}

其中一个示例:https://github.com/mmacneil/ASPNetCoreGraphQL

我似乎找不到任何可以搜索到该错误的信息,有关此文档的帮助也很少。我希望有人在图书馆工作过并且遇到同样的问题。

这是在GraphQLController中执行查询的结果导致的错误:

InnerException = {GraphQL.ExecutionError: Unmapped selection Field 
at GraphQL.Language.CoreToVanillaConverter.Selection(ASTNode source)
at GraphQL.Language.CoreToVanillaConverter.SelectionSet(GraphQLSelectionSet source) 
at GraphQL.Language.CoreToVanillaConverter.Operation(GraphQLOperationDefinition source) 
at GraphQL.Language.CoreToVanillaConverter.AddDefinitions(GraphQLDocument source, Document target)
at GraphQL.Language.CoreToVanillaConverter.Convert(String body, GraphQLDocument source)
at GraphQL.Execution.GraphQLDocumentBuilder.Build(String body)
at GraphQL.DocumentExecuter.ExecuteAsync(ExecutionOptions options)

这也是我在这里的第一篇文章。让我知道您是否需要更多信息。

2 个答案:

答案 0 :(得分:2)

我怀疑您的 GraphQL-Parser NuGet软件包副本不正确。我也遇到了类似的问题,并将它reported放在了 GraphQL-Parser 问题跟踪器中。

尝试以下操作(假设使用Visual Studio 2017):

  1. 使用Build-> Clean Solution或下载示例解决方案的新副本来清洁您的解决方案。
  2. 关闭Visual Studio以确保它没有锁定打开任何文件
  3. 通过在命令提示符下运行dotnet nuget locals http-cache --cleardotnet nuget locals all --clear
  4. Clear your NuGet package cache
  5. 重新打开项目并进行构建。它应该从NuGet服务器恢复软件包的新副本,希望不会出现这些问题。

答案 1 :(得分:0)

即使在简单的helloWorld GraphQl示例控制台以及以前克隆的项目中,我也遇到了此错误。

  

从第3版到第4版安装(更新)GraphQL-Parser Nuget软件包   解决了问题。

要注意的一件事是,首先将此软件包作为依赖项安装,在VS 2019中,您不会将其视为单独的软件包。但是,如果您是从Nuget软件包管理器或通过软件包管理器控制台手动安装版本4,则Visual Studio依赖关系树中GraphQL软件包下的版本也会引用该版本。

enter image description here