问题标签 [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 投票
2 回答
925 浏览

entity-framework - 如何处理数据加载器/GraphQL 嵌套查询中的并发 DbContext 访问?

我正在使用几个使用注入查询服务的数据加载器(这些服务又依赖于 DbContext)。它看起来像这样:

当我运行同时使用两个数据加载器的嵌套查询时,我得到一个异常"A second operation started on this context before a previous asynchronous operation completed",因为两个数据加载器同时使用相同的 DbContext。

在查询中允许并发数据库访问而不必仔细管理 DbContexts 的最佳方法是什么ServiceLifeTime.Transient?或者数据加载器可以公开一种知道何时处理瞬态 DbContexts 的方法吗?

0 投票
2 回答
380 浏览

c# - GraphQL .NET Core Visual Studio 2019 错误建议

我正在用 graphql-dotnet 练习。我创建了一个 PropertyQuery,如下所示:

Visual Studio (2019) 的智能感知出现问题。当我传递方法的resolve参数时Field,智能感知不建议GetArgumentSource等... ResolveFieldContext<TSource>,相反,它建议如下:

在此处输入图像描述

我很困惑这是 Visual Studio 的错误,还是 graphql-dotnet 库有问题。我是graphql的新手,如果intellisense建议错了,就不能继续练习了

0 投票
1 回答
718 浏览

c# - GraphQL.NET 动态字段类型

我正在尝试将一个对象添加到我的 GraphQL.NET 模型中,但其中一个字段有问题。原来的类是

这需要一个物化路径(如Person.Address.ZipCode),并将其与MatchValue. 问题是,MatchValue可能有很多不同的东西:布尔值、整数、字符串、列表/数组、日期时间等。

我的第一次尝试是创建 GraphQL 类,如下所示:

但它给出了以下错误:

如果我将其设置为 a StringGraphType,它将正确转换一些值(例如,布尔真变为“真”),但我真的不喜欢这种解决方案,因为它需要在客户端进行特殊处理。我还没有探索所有可能的类型以查看数组或 DateTime 会发生什么。

有什么方法可以在 GraphQL.NET 中做到这一点?

(在搜索中,我发现了几个处理类型参数的资源,但这对我正在做的事情并没有真正的帮助,因为我使用通用对象并在运行时使用反射来确定如何处理特定值。我还发现这个悬而未决的问题非常相似......但遗憾的是没有答案。)

0 投票
2 回答
4108 浏览

.net-core - 在 Azure Function 中启用同步 IO

我正在构建一个 HTTPTriggered Azure 函数,目标是 netcoreapp3.0,它正在运行一个 GraphQL .NET 服务器。GraphQL .NET 要求将AllowSynchronousIO其设置为true,但我不知道如何为 Azure 函数执行此操作。我尝试实现自己的Startup类,该类扩展FunctionsStartup并在方法中添加了以下代码,但Configure没有成功。

我得到的错误信息是:

发生了未处理的主机错误。

Microsoft.AspNetCore.Server.Kestrel.Core:不允许同步操作。改为调用 WriteAsync 或将 AllowSynchronousIO 设置为 true。

任何帮助将不胜感激!

0 投票
1 回答
198 浏览

c# - DotNet Core 的 GraphQL 将参数值转换为整数

我正在使用 graphql-dotnet ( dotnet GraphQl ) 在 DotNet Core 2.1 中实现 GraphQL。我有以下课程:

这是我通过 GraphIQL 发送给这个突变的输入:

这是 C# 代码中的输入:

在此处输入图像描述

手表显示 id 的值是0x00000013而不是19

这是 GraphIQL 中的输出:

在此处输入图像描述

我需要19在注入此突变的存储库中使用 的值进行进一步处理。但是,当我将 Customer 对象传递给存储库时,Customer 对象中 id 的值0x00000013会导致进一步的下游处理失败,因为它期望19而不是0x00000013.

为什么0x00000013C# 代码中对象的值却被转换为 GraphIQL 中的实际值?如何在突变返回结果之前将 Cusutomer.id 的值转换为其正确的整数值以进行进一步处理?

0 投票
3 回答
29776 浏览

dependency-injection - 某些服务无法使用库构建:NetCore.AutoRegisterDi

我正在开发基于 asp.net core 3.1 GraphQL 的 API。我使用以下参考文章在 API 层设置自动 DI 配置并使用了 nuget 包:NetCore.AutoRegisterDi

https://www.thereformedprogrammer.net/asp-net-core-fast-and-automatic-dependency-injection-setup/

这是代码详细信息:

代码:

启动.cs:

ProjectServiceCollectionExtensions.cs

在上面的CommonService中,这里是以 Persistence 结尾的服务层的一部分。

CountryResolver.cs

ICommonService.cs

公共服务.cs

ICountryService.cs

CountryService.cs

错误:

谁能帮我知道如何解决这个问题?

0 投票
1 回答
160 浏览

c# - 使用 GraphQL.net 时,如何从 ObjectGraphType 中的字段访问请求对象?

我正在使用带有 C# 的 GraphQL.net。我在 ObjectGraphType 中有一个字段,看起来像这样;

我拥有的唯一一个端点看起来像这样;

如何让我的 ObjectGraphType 字段的解析函数访问控制器操作中找到的 HttpRequest 对象?尽管我对获取整个 HttpRequest 对象感兴趣,但能够将特定信息从 Request 传递到 resolve 函数就足够了。

0 投票
1 回答
136 浏览

many-to-many - 多对多与 graphql-dotnet 中的 dataLoader

我们如何使用 dataLoader 实现多对多?

可以说我想获取有联系人的公司(一个联系人可以有多个公司)。我有一个 companyLinks 作为 midde 表(带有 companyId/contactId)。

当公司只有一个联系人时,我有这个工作:

但是,如果一个联系人拥有超过 1 家公司怎么办?我怎么知道正确的 companyId ?

0 投票
1 回答
513 浏览

c# - 是否可以在 GraphQL 中发送具有多个值的枚举

在 C# 中,可以创建带有标志属性的 Enum。( https://docs.microsoft.com/en-us/dotnet/api/system.flagsattribute?view=netstandard-2.1 ) 这意味着 Enum 可以看起来像这样:

EnumWithFlags 的值可以是 5,这意味着它将同时具有 FlagThree 和 FlagOne。

这也可以使用 Enum 输入类型吗?有没有这方面的例子?

0 投票
0 回答
481 浏览

.net-core - 配置 GraphQL.Server.Authorization 和 IdentityServer

我正在尝试使用 IdentityServer 4 配置 GraphQL-dotnet 身份验证,但无法使令牌验证正常工作。在 UI-playground 中,我使用 Chrome ModHeader 扩展来添加身份验证标头,但似乎 api 没有注册令牌 - 它失败并显示“您无权运行此查询。当前用户必须经过身份验证。” . 有什么我想念的吗?先感谢您。