У меня есть простое перечисление, которое я пытаюсь включить в свой тип GraphQL, и получаю следующую ошибку:
Тип GraphQL для поля: «Категория» в родительском типе: «NewsItemType» можетне может быть получено неявно.
------------------ Тип GraphQL для поля: «Категория» для родительского типа: «NewsItemType» не может быть получен неявно.
--------------- Тип: NewsType не может быть эффективно приведен к типу GraphQL Имя параметра: тип
мой простой enum выглядитнапример:
public enum NewsType
{
General = 0,
Business = 1,
Entertainment = 2,
Sports = 3,
Technology = 4
}
GraphQL ObjectGraphType
, в который он включен:
public class NewsItemType : ObjectGraphType<NewsItemViewModel>
{
public NewsItemType()
{
Field(x => x.Id).Description("Id of a news item.");
Field(x => x.Title).Description("Title of a new item.");
Field(x => x.Description).Description("Description of a news item.");
Field(x => x.Author).Description("Author of a news item.");
Field(x => x.Url).Description("URI location of the news item");
Field(x => x.ImageUrl).Description("URI location of the image for the news item");
Field(x => x.PublishDate).Description("Date the news item was published");
Field(x => x.Category).Description("Category of the news item.");
}
}
и, наконец, viewmodel, на котором основывается тип graphql:
public class NewsItemViewModel : ViewModelBase
{
public string Title { get; set; }
public string Author { get; set; }
public string Description { get; set; }
public string Url { get; set; }
public string ImageUrl { get; set; }
public DateTime PublishDate { get; set; }
public NewsType Category { get; set; }
}
Что я делаю здесь неправильно и как я могу это преодолеть?
РЕДАКТИРОВАТЬ: мой запрос содержит следующее:
Field<ListGraphType<NewsItemType>>(
name: "newsItems",
arguments: new QueryArguments(
new QueryArgument<IntGraphType>() { Name = "count" },
new QueryArgument<IntGraphType>() { Name = "category" }),
resolve: context =>
{
var count = context.GetArgument<int?>("count");
var category = context.GetArgument<int>("category");
var newsType = (NewsType)category;
if (count.HasValue)
{
return newsItemService.GetMostRecent(newsType, count.Value);
}
else
{
return newsItemService.GetMostRecent(newsType);
}
}
)