【问题标题】:GraphQL for .Net Error: Unmapped selection Field.Net 的 GraphQL 错误:未映射的选择字段
【发布时间】:2019-11-11 14:57:28
【问题描述】:

我刚刚学习 .NET Core 和 GraphQL,无法从网络上获得一个示例(我已经尝试了十几个)来工作。他们都在使用这个库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)

这也是我在这里的第一篇文章。如果您需要更多信息,请告诉我。

【问题讨论】:

  • 奇怪的是,我们突然开始在基于 GraphQL 的项目中间歇性地遇到同样的事情。从调试和阅读 GraphQL 源代码来看,它看起来不应该遇到那个异常。您介意告诉我您使用的是什么环境吗?
  • 查看此问题:github.com/graphql-dotnet/parser/issues/28 这是一个无意的不兼容更改。

标签: c# asp.net-core graphql


【解决方案1】:

我怀疑你有一个错误的 GraphQL-Parser NuGet 包副本。我也遇到过类似的问题,并已将 reported 发送到 GraphQL-Parser 问题跟踪器。

尝试以下方法(假设是 Visual Studio 2017):

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

【讨论】:

  • 谢谢!!!我面临同样的问题,不知道发生了什么。按照 Lynda 中的教程“使用 GraphQL 在 .NET 中进行 API 开发”,我的本地 NuGet 很糟糕
【解决方案2】:

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

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

需要注意的是,起初这个包是作为依赖安装的,在 VS 2019 中你不会将它视为一个单独的包。但如果你从 Nuget 包管理器或包管理器控制台手动安装版本 4,Visual Studio 依赖关系树中 GraphQL 包下的那个也会引用它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-17
    • 2015-08-11
    相关资源
    最近更新 更多