В настоящее время у меня есть один простой запрос (ArticleQuery), который включает два поля. Первое поле принимает идентификатор и возвращает соответствующие данные — это поле функционирует, как я и ожидал, и работает. Второе поле (с именем 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.");
}
}
почему мой запрос возвращает пустую строку вместо списка статей и как это исправить?





После дополнительной игры, похоже, форматирование моего запроса было неправильным. Это должно было быть:
query GetArticleData{
articles {
id
description
}
}
вместо:
query GetArticleData(){
articles {
id
description
}
}
поскольку круглые скобки необходимы только при указании переменных запроса и должны быть исключены в противном случае.