【发布时间】:2019-04-02 00:37:25
【问题描述】:
我是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?>
...等等。
我尝试创建一个继承 ObjectGraphType 的 RangeModelType 类:
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 和泛型类的教程,但没有提及使用这种泛型类。
谁能帮帮我?
谢谢,
【问题讨论】:
-
我对graphQL不太了解,但这看起来ObjectGraphType和ScalarGraphType不兼容,独立于泛型......您可以通过使用更简单的objectgraphtype来验证这一点。
标签: c# .net-core graphql asp.net-core-2.0 asp.net-core-webapi