Ole*_*siy 4 c# resolver graphql hotchocolate
我正在开发一个 GraphQL -> SQL 解析器,其中包含一些连接,因此是否请求某个字段会产生性能差异。有办法找出来吗?
我正在学习对象类型,所以我认为这可能与在其上设置解析器有关。但是解析器在独立于其他事物请求的字段级别上工作。而我试图在最顶层的查询级别上找出GraphQL 查询中请求了哪些字段。这将塑造 SQL 查询。
public class QueryType : ObjectType<Query>
{
protected override void Configure(IObjectTypeDescriptor<Query> descriptor)
{
descriptor
.Field(f => f.GetACUMonthlySummary(default!, default!, default!, default!, default!, default!))
.Type<ListType<ACUMonthlySummaryType>>();
}
}
Run Code Online (Sandbox Code Playgroud)
我看到了 js 的相关问题,但没有找到任何专门在 C# 和 HotChocolate 中的示例,这就是我们正在使用的。
我不确定是否建议这样做,所以我很感谢反馈,但我发现以下方法可以列出所有选定的节点:
IResolverContext context(使用 HotChocolate.Resolvers)作为查询中的参数之一。context.Selection.SyntaxNode.SelectionSet.Selections给出一个IEnumerable<ISelectionNode>. 它恰好包含用户选择的字段。