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

时间:2019-02-13 18:28:15

标签: asp.net asp.net-core .net-core graphql

我目前设置了一个简单的查询(ArticleQuery),其中包括两个字段。第一个字段带有一个ID并返回适当的数据-该字段按我期望的方式工作。第二个字段(名为articles)应该返回表中的所有对象,但是当使用GraphiQL接口发出以下查询时,我将返回一个空字符串。

查询:

query GetArticleData(){
  articles {
    id
    description
  }
}

ArticleQuery的外观如下:

    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.");
        }
    }

为什么我的查询返回一个空字符串而不是我的文章列表,我该如何解决?

1 个答案:

答案 0 :(得分:0)

经过更多测试之后,看来我的查询格式不正确。应该是:

query GetArticleData{
  articles {
    id
    description
  }
}

代替:

query GetArticleData(){
  articles {
    id
    description
  }
}

仅在指定查询变量时才需要括号,否则将其排除。