Я новичок в GraphQL , я делаю небольшой веб-сайт, предназначенный для управления студентами и классами.
В моем приложении у меня есть общий класс:
public class RangeModel<TFrom, TTo>
{
#region Propertes
public TFrom From { get; set; }
public TTo To { get; set; }
#endregion
}
Этот класс предназначен для определения диапазона с универсальным типом данных.Диапазон может быть:
RangeModel<double?, double?>
RangeModel<int?, int?>
... и т. Д.
Я пытался создать класс RangeModelType
который наследует ObjectGraphType
:
public class RangeModelType<TFrom, TTo>: InputObjectGraphType<RangeModel<TFrom, TTo>>
{
public RangeModelType()
{
Field(x => x.From).Description("Minimum range");
Field(x => x.To).Description("Maximum range");
}
}
И определил мой запрос, как показано ниже:
var studentsQueryArguments = new QueryArguments();
studentsQueryArguments.Add(new QueryArgument<ListGraphType<IntGraphType>> { Name = "ids", Description = "Student indexes." });
studentsQueryArguments.Add(new QueryArgument<ObjectGraphType<RangeModelType<double?, double?>>>{Name = "age", Description = "Age range of student."});
Field<ListGraphType<StudentType>>(
"students",
arguments: studentsQueryArguments,
resolve: context =>
{
// Resolve data...
return results;
});
}
Когда я запустил свое приложение и выполнил запрос.Было отброшено одно исключение, которое сообщило:
Невозможно привести объект типа GraphQL.Types.ObjectGraphType1 [GraphQlStudy.Models.GraphQL.Types.RangeModelType2 [System.Nullable1 [System.Double], System.Nullable1 [System.Double]]] 'для ввода' GraphQL.Types.ScalarGraphType '.
Я искал учебники, которые используют GraphQL и универсальный класс, но ничего не упоминает об использовании такого рода универсальныхкласс.
Кто-нибудь может мне помочь?
Спасибо,