问题标签 [graphql-dotnet]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
54 浏览

c# - GraphQL - 传递非属性变量

我刚开始使用 GraphQL(使用 .NET,但我认为这并不重要)。我已经学会了如何传递属于我正在查询的类型的属性的变量,但我不确定如何传递不是属性的变量。

例如,我有一个充满驱动程序的数据库,它们都属于一个或多个客户端。驱动程序对象没有 ClientId 属性。相反,有一个带有 0 个或多个 Driver 对象的 Client 对象。

驱动程序.cs:

在 RootQuery 构造函数中:

这可能吗?或者我是否必须 a) 将 ClientId 属性添加到我的驱动程序对象,或者 b) 实现“ClientGraph”对象?

谢谢!

0 投票
2 回答
851 浏览

c# - GraphQL DataLoader 的空上下文

在我使用graphql-dotnet的项目中,我意外地开始收到错误消息说 DataLoader 上下文为空:

context参数来自IDataLoaderContextAccessor注入到图形类型的构造函数中的那个。为什么会为空?

0 投票
2 回答
1413 浏览

asp.net-core - 如何在 ASP.NET Core GraphQL 中访问嵌套字段中的参数

我有一个带有“统计”字段的查询,这是一个具有三个不同累积值的子查询。我希望能够为统计数据提供一个国家/地区参数,然后在解析器中访问子查询中不同字段的该参数。

我正在使用 GraphQL.Server.Transports.AspNetCore nuget 包。子查询使用 IDependencyResolver 解析,因为它对在解析器中用于不同字段的服务有一些依赖关系。

我试图通过 ResolveFieldContext 访问父级,但它似乎不可用。上下文中有一个名为“Source”的属性,但它指的是子查询对象。

如果我们查看 GraphQL 的其他实现似乎应该是可能的,但我不知道如何从 ASP.NET Core 获得结果

下面的代码显示了名为“CompanyGroupQuery”的主查询的一部分

子查询看起来像这样

0 投票
0 回答
140 浏览

graphql - GraphType 使用 ListGraphType 或使用 Connection 的第一个架构端点

我正在为 3 种类型(比如说学生、同学和宠物)设置端点,其中学生有很多同学和很多宠物。我想出了2个选项:

  • 第一个是创建一个 FriendsInterface 并让 Classmate 和 Pet 实现该接口,然后将它们全部返回为 ListGraphType

  • 第二个是为这些类型创建一个连接:ClassmateConnection 和 PetConnection

我描述的第一种和第二种方法有什么区别。

  • 创建连接是否更好(因为我可以看到那些允许在 API 中分页)?
  • 第二种方法是否会带来更好的 GraphQL 模式,其中每个 GraphQL 节点通过边连接到另一个节点。

我尝试创建一个 ListGraphType,因为这是我可以在示例中看到的。

但是,没有关于如何创建连接的示例,并且我一直遇到以下错误:

第一种方法

第二种方法(创建连接)

在第一种方法中,这是我要发送的查询:

在第二种方法中,查询如下:

0 投票
1 回答
230 浏览

graphql-dotnet - GraphQL .NET:单例模式的中间件问题

我在 .NET 核心网站/控制器上使用 GraphQL。架构非常大,因此构造函数需要大约一秒钟的时间才能运行。我不能在每个请求上都有这种开销,所以我将模式创建为一个单例,在所有请求之间共享。

这在大多数情况下都有效,但它会导致中间件出现随机问题。有时中间件会开始为每个元素运行两次,这通常会在中间件第二次运行时导致错误。

0 投票
1 回答
572 浏览

graphql - 如何将父类型值作为参数传递给 GraphQL-Dotnet 中的子类型?

节目 - 父类型

人 - 子类型

一场演出可以有很多人。我想将显示类型中的每个“personId”作为参数传递给其子类型 Person,如下所示:

请问我可以知道如何访问 Person 字段中 PersonId 字段(兄弟)的值吗?

请告知如何实现这一目标。

0 投票
1 回答
231 浏览

graphql-dotnet - 在 GraphQL.NET 中构建分层对象树

我正在构建一个 API,允许您在 GraphQL 中获取分层对象树。这些对象不在数据存储中,而是来自某些上游 API。例如;

我想用引用经理ManagerId的实际对象替换该属性。Employee我到了这一步;

这个想法是管理器有一个自定义解析器,它将从 API 中获取它。问题是调用此 API 的人需要显式传递 ID,如下所示;

这不起作用,因为他们首先需要知道经理的 ID 是什么,然后才能执行此查询。我如何分阶段执行这个 GraphQL 查询,我首先获取员工对象,然后在我知道他或她的 ID 后获取经理对象?此外,如何将父级的上下文传递给解析器,以便它可以获取 ID 属性?

0 投票
3 回答
978 浏览

asp.net-core - 使用 GraphQL for .NET 和 EF Core 3.0 进行并行异步查询

概括

我目前正在将一个项目迁移到 AspNetCore 3.0,并且在一个查询中查询多个内容时遇到了 GraphQL for .NET ParallelExecutionStrategy的问题。该项目使用 MSSQL Server 作为数据存储,并通过 Entity Framework Core 3.0 进行访问。我得到的错误是:

在前一个操作完成之前,在此上下文上开始了第二个操作。这通常是由使用相同 DbContext 实例的不同线程引起的。

如果我实现IDocumentExecuter并将 ParallelExecutionStrategy 更改为等待每个单独的执行,我可以解决这个问题,从Task.WhenAllawait ExecuteNodeAsynchttps://github.com/graphql-dotnet/graphql-dotnet/blob/master/src/GraphQL/Execution/ParallelExecutionStrategy. cs#L27)。

我尝试执行的示例查询:

编辑:

使用 DbContextPool 似乎也不能解决问题:

0 投票
1 回答
556 浏览

c# - 如何在 graphql-dotnet 中注入数据库上下文

配置服务

配置

询问

执行 GraphQL 端点会导致以下异常

System.InvalidOperationException:无法从根提供程序解析范围服务“Models.Database.Context”。

更多细节。

0 投票
1 回答
371 浏览

c# - 将存储库注入 SiteResourceGraphType 时,“没有为 SiteResourceGraphType 类型定义无参数构造函数”消息

我有一个SiteResourceGraphType类,它继承自ObjectGraphType. SiteResourceGraphType类接受IGenericRepository<Site, Guid>以解析items字段。

当我启动我的应用程序时,我收到错误“没有为类型 SiteResourceGraphType 定义的无参数构造函数”。

启动

架构

查询 我使用了来自graphql-dotnet 文档的查询组织技术

目标图形类型

这样做的目的SiteResourceGraphType是提供这样的响应结构:

我已经查看了来自 stackoverflow、github 的很多关于 graphql-dotnet 中 DI 的帖子,我尝试了这个库的不同版本(现在我使用的是“3.0.0-preview-1271”版本)。

但是关于无参数 ctor 的问题仍然存在。我真的厌倦了弄清楚我错过了什么。请帮忙!