问题标签 [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.
c# - GraphQL - 传递非属性变量
我刚开始使用 GraphQL(使用 .NET,但我认为这并不重要)。我已经学会了如何传递属于我正在查询的类型的属性的变量,但我不确定如何传递不是属性的变量。
例如,我有一个充满驱动程序的数据库,它们都属于一个或多个客户端。驱动程序对象没有 ClientId 属性。相反,有一个带有 0 个或多个 Driver 对象的 Client 对象。
驱动程序.cs:
在 RootQuery 构造函数中:
这可能吗?或者我是否必须 a) 将 ClientId 属性添加到我的驱动程序对象,或者 b) 实现“ClientGraph”对象?
谢谢!
c# - GraphQL DataLoader 的空上下文
在我使用graphql-dotnet的项目中,我意外地开始收到错误消息说 DataLoader 上下文为空:
context
参数来自IDataLoaderContextAccessor
注入到图形类型的构造函数中的那个。为什么会为空?
asp.net-core - 如何在 ASP.NET Core GraphQL 中访问嵌套字段中的参数
我有一个带有“统计”字段的查询,这是一个具有三个不同累积值的子查询。我希望能够为统计数据提供一个国家/地区参数,然后在解析器中访问子查询中不同字段的该参数。
我正在使用 GraphQL.Server.Transports.AspNetCore nuget 包。子查询使用 IDependencyResolver 解析,因为它对在解析器中用于不同字段的服务有一些依赖关系。
我试图通过 ResolveFieldContext 访问父级,但它似乎不可用。上下文中有一个名为“Source”的属性,但它指的是子查询对象。
如果我们查看 GraphQL 的其他实现似乎应该是可能的,但我不知道如何从 ASP.NET Core 获得结果
下面的代码显示了名为“CompanyGroupQuery”的主查询的一部分
子查询看起来像这样
graphql - GraphType 使用 ListGraphType 或使用 Connection 的第一个架构端点
我正在为 3 种类型(比如说学生、同学和宠物)设置端点,其中学生有很多同学和很多宠物。我想出了2个选项:
第一个是创建一个 FriendsInterface 并让 Classmate 和 Pet 实现该接口,然后将它们全部返回为 ListGraphType
第二个是为这些类型创建一个连接:ClassmateConnection 和 PetConnection
我描述的第一种和第二种方法有什么区别。
- 创建连接是否更好(因为我可以看到那些允许在 API 中分页)?
- 第二种方法是否会带来更好的 GraphQL 模式,其中每个 GraphQL 节点通过边连接到另一个节点。
我尝试创建一个 ListGraphType,因为这是我可以在示例中看到的。
但是,没有关于如何创建连接的示例,并且我一直遇到以下错误:
第一种方法
第二种方法(创建连接)
在第一种方法中,这是我要发送的查询:
在第二种方法中,查询如下:
graphql-dotnet - GraphQL .NET:单例模式的中间件问题
我在 .NET 核心网站/控制器上使用 GraphQL。架构非常大,因此构造函数需要大约一秒钟的时间才能运行。我不能在每个请求上都有这种开销,所以我将模式创建为一个单例,在所有请求之间共享。
这在大多数情况下都有效,但它会导致中间件出现随机问题。有时中间件会开始为每个元素运行两次,这通常会在中间件第二次运行时导致错误。
graphql - 如何将父类型值作为参数传递给 GraphQL-Dotnet 中的子类型?
节目 - 父类型
人 - 子类型
一场演出可以有很多人。我想将显示类型中的每个“personId”作为参数传递给其子类型 Person,如下所示:
请问我可以知道如何访问 Person 字段中 PersonId 字段(兄弟)的值吗?
请告知如何实现这一目标。
graphql-dotnet - 在 GraphQL.NET 中构建分层对象树
我正在构建一个 API,允许您在 GraphQL 中获取分层对象树。这些对象不在数据存储中,而是来自某些上游 API。例如;
我想用引用经理ManagerId
的实际对象替换该属性。Employee
我到了这一步;
这个想法是管理器有一个自定义解析器,它将从 API 中获取它。问题是调用此 API 的人需要显式传递 ID,如下所示;
这不起作用,因为他们首先需要知道经理的 ID 是什么,然后才能执行此查询。我如何分阶段执行这个 GraphQL 查询,我首先获取员工对象,然后在我知道他或她的 ID 后获取经理对象?此外,如何将父级的上下文传递给解析器,以便它可以获取 ID 属性?
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.WhenAll
到await ExecuteNodeAsync
(https://github.com/graphql-dotnet/graphql-dotnet/blob/master/src/GraphQL/Execution/ParallelExecutionStrategy. cs#L27)。
我尝试执行的示例查询:
编辑:
使用 DbContextPool 似乎也不能解决问题:
c# - 如何在 graphql-dotnet 中注入数据库上下文
配置服务
配置
询问
执行 GraphQL 端点会导致以下异常
System.InvalidOperationException:无法从根提供程序解析范围服务“Models.Database.Context”。
更多细节。
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 的问题仍然存在。我真的厌倦了弄清楚我错过了什么。请帮忙!