代码之家  ›  专栏  ›  技术社区  ›  GregH

.NET核心中的GraphQL查询返回空结果

  •  0
  • GregH  · 技术社区  · 5 年前

    我现在有一个简单的查询( ArticleQuery )包括两个字段的设置。第一个字段接受一个id并返回适当的数据,这个字段按照我的预期工作。第二个字段(名为 articles )应该返回表中的所有对象,但是在使用 GraphiQL

    查询:

    query GetArticleData(){
      articles {
        id
        description
      }
    }
    

    在哪里? 文章查询 如下所示:

        public class ArticleQuery : ObjectGraphType
        {
            public ArticleQuery(IArticleService articleService)
            {
                Field<ArticleType>(
                    name: "article",
                    arguments: new QueryArguments(new QueryArgument<IntGraphType> { Name = "id" }),
                    resolve: context =>
                    {
                        var id = context.GetArgument<int>("id");
                        return articleService.Get(id);
                    }
                );
    
                Field<ListGraphType<ArticleType>>(
                    name: "articles",
                    resolve: context =>
                    {
                        return articleService.GetAll();
                    }
                );
            }
        }
    

    请注意,在 articleService.GetAll() 方法永远不会被击中。

    最后是 ArticleType 班级:

        public class ArticleType : ObjectGraphType<ArticleViewModel>
        {
            public ArticleType()
            {
                Field(x => x.Id).Description("Id of an article.");
                Field(x => x.Description).Description("Description of an article.");
            }
        }
    

    0 回复  |  直到 5 年前
        1
  •  0
  •   GregH    5 年前

    在进行了更多的尝试之后,我的查询的格式似乎不正确。应该是:

    query GetArticleData{
      articles {
        id
        description
      }
    }
    

    而不是:

    query GetArticleData(){
      articles {
        id
        description
      }
    }
    

    因为只有在指定查询变量时才需要括号,否则需要排除括号。