问题标签 [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.
entity-framework - 如何处理数据加载器/GraphQL 嵌套查询中的并发 DbContext 访问?
我正在使用几个使用注入查询服务的数据加载器(这些服务又依赖于 DbContext)。它看起来像这样:
当我运行同时使用两个数据加载器的嵌套查询时,我得到一个异常"A second operation started on this context before a previous asynchronous operation completed"
,因为两个数据加载器同时使用相同的 DbContext。
在查询中允许并发数据库访问而不必仔细管理 DbContexts 的最佳方法是什么ServiceLifeTime.Transient
?或者数据加载器可以公开一种知道何时处理瞬态 DbContexts 的方法吗?
c# - GraphQL.NET 动态字段类型
我正在尝试将一个对象添加到我的 GraphQL.NET 模型中,但其中一个字段有问题。原来的类是
这需要一个物化路径(如Person.Address.ZipCode
),并将其与MatchValue
. 问题是,MatchValue
可能有很多不同的东西:布尔值、整数、字符串、列表/数组、日期时间等。
我的第一次尝试是创建 GraphQL 类,如下所示:
但它给出了以下错误:
如果我将其设置为 a StringGraphType
,它将正确转换一些值(例如,布尔真变为“真”),但我真的不喜欢这种解决方案,因为它需要在客户端进行特殊处理。我还没有探索所有可能的类型以查看数组或 DateTime 会发生什么。
有什么方法可以在 GraphQL.NET 中做到这一点?
(在搜索中,我发现了几个处理类型参数的资源,但这对我正在做的事情并没有真正的帮助,因为我使用通用对象并在运行时使用反射来确定如何处理特定值。我还发现这个悬而未决的问题非常相似......但遗憾的是没有答案。)
.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。
任何帮助将不胜感激!
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
.
为什么0x00000013
C# 代码中对象的值却被转换为 GraphIQL 中的实际值?如何在突变返回结果之前将 Cusutomer.id 的值转换为其正确的整数值以进行进一步处理?
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
错误:
谁能帮我知道如何解决这个问题?
c# - 使用 GraphQL.net 时,如何从 ObjectGraphType 中的字段访问请求对象?
我正在使用带有 C# 的 GraphQL.net。我在 ObjectGraphType 中有一个字段,看起来像这样;
我拥有的唯一一个端点看起来像这样;
如何让我的 ObjectGraphType 字段的解析函数访问控制器操作中找到的 HttpRequest 对象?尽管我对获取整个 HttpRequest 对象感兴趣,但能够将特定信息从 Request 传递到 resolve 函数就足够了。
many-to-many - 多对多与 graphql-dotnet 中的 dataLoader
我们如何使用 dataLoader 实现多对多?
可以说我想获取有联系人的公司(一个联系人可以有多个公司)。我有一个 companyLinks 作为 midde 表(带有 companyId/contactId)。
当公司只有一个联系人时,我有这个工作:
但是,如果一个联系人拥有超过 1 家公司怎么办?我怎么知道正确的 companyId ?
c# - 是否可以在 GraphQL 中发送具有多个值的枚举
在 C# 中,可以创建带有标志属性的 Enum。( https://docs.microsoft.com/en-us/dotnet/api/system.flagsattribute?view=netstandard-2.1 ) 这意味着 Enum 可以看起来像这样:
EnumWithFlags 的值可以是 5,这意味着它将同时具有 FlagThree 和 FlagOne。
这也可以使用 Enum 输入类型吗?有没有这方面的例子?
.net-core - 配置 GraphQL.Server.Authorization 和 IdentityServer
我正在尝试使用 IdentityServer 4 配置 GraphQL-dotnet 身份验证,但无法使令牌验证正常工作。在 UI-playground 中,我使用 Chrome ModHeader 扩展来添加身份验证标头,但似乎 api 没有注册令牌 - 它失败并显示“您无权运行此查询。当前用户必须经过身份验证。” . 有什么我想念的吗?先感谢您。