问题标签 [hotchocolate]

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 回答
510 浏览

c# - 需要帮助在 HotChocolate Filters 中创建求和聚合操作

这个问题基于https://github.com/ChilliCream/hotchocolate/issues/924中的讨论——这也是我获得灵感的地方。

我有一个系统,其中我保留了一份员工名单。每个员工都有一个 WorkHours 属性,表示您每周工作多少小时。

我还有一系列需要由前面提到的员工解决的任务。

该关联是通过分配类处理的。此类包含两个 unix 时间戳 Start 和 End ,表示员工在哪个时间段内处理特定任务。此外,他们有一个 HoursPerWeek 属性,表示员工每周必须在给定任务上花费多少小时,HoursPerWeek 是必要的,因为只要 Allocation.HoursPerWeek 的总和,员工就可以在同一时间段内与多个任务相关联不超过 Employee.WorkHours。

本质上,我想按照这个 LINQ 查询的方式实现一些目标

这将有效地给我任何在这个时间点剩余工作时间的员工。

我无法在我的查询中直接引用employee.WorkHours,但我试图让它与双打相比工作。这就是我现在已经走了多远

有了它,我然后尝试编写我的查询

但是,此实现会不断抛出异常,因为它无法从System.Obejctto 转换System.Generic.IEnumerable

但是在最终版本中,我希望能够不使用 const 编号而是使用 Employee WorkHours 进行查询

谁能协助创建一个过滤器操作?也许你做过类似的事情,或者知道这实际上是不可能的。

如果有人想玩它,我已经将我所有的代码都放在了 GitHub 存储库中https://github.com/LordLyng/sum-filter-example

0 投票
0 回答
659 浏览

graphql - .Net Core 热巧克力模式拼接

目前正在使用 ASP.Net Web Api 作为我们其他 graphql 微服务的网关。我们正在使用 Hot Chocolate 10.5.2 将所有模式定义拼接在一起。我们的大多数模式都可以正常工作;但是,当我们尝试拼接多个查询模式时,它不会为下游微服务生成可使用的模式。如果我们直接调用下游微服务,则此查询可以正常工作,但不能通过网关 api 使用拼接模式。

查询如下:

据我所知,RemoteRequestDispatcher 将查询变量重命名为__0__variablenameetc,但即使名称相同,它似乎也没有重命名传入的对象的属性。这导致我们在遇到下游微服务时收到以下错误:

因此,重命名的变量显示为未使用,并且由于重命名,未声明作为输入对象一部分的变量。

我意识到我们可以改变我们传递变量的方式,但由于这是一个有效的模式,无需拼接就可以直接工作,我们宁愿不必更改所有的 UI 代码。

任何帮助,将不胜感激!

0 投票
0 回答
342 浏览

c# - 是否可以在 HotChocolate 中创建通用数据加载器?

我正在尝试为我以通用方式提供的任何实体创建具有标准查询和突变的 graphql 服务器,即我从某处读取配置,在内存中创建实体,然后创建 graphql 服务器。

我目前能够创建一个通用类型来查询所有详细信息,但我似乎无法创建一个通用数据加载器来有效地按 Id 检索记录。

或者

架构似乎正确生成,但在执行查询时我收到以下信息:

我目前有以下代码:

启动.cs

GenericByIdDataLoader.cs

通用查询.cs

IEntity.cs

扬声器.cs

知道问题是什么吗?

谢谢

0 投票
1 回答
440 浏览

c# - 使用 HotChocolate 动态选择模式 - GraphQL

我正在努力尝试根据请求发送的信息动态选择要使用的架构。

例子:

如果我向特定 URL 发送请求 - .../graphql/schema/{id} - 我可以从 slug 中获取 id。使用该 ID,我想获取架构(存储在数据库中,用户可以在其中多次更新)并针对它执行查询。

我已经可以使用 graphql-dotnet 做到这一点,但我想使用 HotChocolate 以利用它提供的所有功能。到目前为止,我已经浪费了很多时间,但我没有成功。

我研究了 IRequestExecutorResolver 的实现,我意识到 RequestExecutor 是根据 schemaName 选择的。有没有办法在运行时添加和编辑当前的执行者列表?或者有没有更简单的方法来解决我的问题?

0 投票
1 回答
1350 浏览

c# - 如何根据应用的过滤器更改热巧克力中的查询?

我是热巧克力的新手,我有一个我无法弄清楚的过滤用例。

我的产品存储库中有此功能,可返回产品数据。

如果用户过滤产品类中的字段品牌,我想更改查询,使其不选择 Where(e=>e.indx==null)。当用户在现场品牌或产品类型或两者上执行此操作时,我需要这样做。

0 投票
1 回答
175 浏览

c# - 过滤 GraphQL HotChocolate 上的 EF Core Navigation 属性

我正在使用带有 EF Core 的 HotChocolate (11.2.2) 并且想要过滤子属性。根据 GraphQL 文档,这应该可以通过在导航属性上使用 filter 关键字来实现,但 HotChocolate 只是失败了。

我的架构:

这是由 EF 支持的,我为IQueryable<A>HotChocolate 提供了一个。

现在我只想包括那些等于这样B的 s :TypeName"ExampleType"

但 HotChcolate 似乎并不理解这一点,并说:

字段“A.RefTo”.validation 上的未知参数“where”

是否可以使用 EF Core 模型过滤导航属性?

0 投票
2 回答
626 浏览

c# - 使用 HotChocolate GraphQL 在 Dapper 中延迟加载数据

我在 C# 后端中使用带有 HotChocolate 库的 GraphQL 时遇到问题。当我使用过滤时,整个表被加载,然后被过滤。这当然意味着每次执行全表扫描时性能很差。

这是查询

这是回购

如何使过滤器传递给 WHERE 子句?也许 DapperExtensions 使用谓词?无论如何都很难,因为在 GraphQL 查询中无法真正访问过滤器。

0 投票
0 回答
117 浏览

graphql - HotChocolate Stitching 如何从突变中删除参数?

我有一个使用 HotChocolate 11 实现的 GraphQL api。架构最近发生了变化,我想使用我们的拼接层来保持它对客户的影响。我有一个看起来像这样的突变:

我不得不再添加一个参数,我们还添加了一个查询来获取额外的数据

我想要做的是使用我们的拼接层来添加突变的旧签名,并在解析器中调用远程模式来获取额外的数据并将其传递给新的突变。我已经重命名了针迹上的新签名并创建了一个看起来像旧签名的突变:

但是我迷失了使用拼接上下文来构建子查询。

收缩的第一个查询工作正常,我得到了数据。但我很难将另一个突变放在一起。是否有更好的方法来实现这一目标?在拼接方面,文档非常模糊。

0 投票
1 回答
609 浏览

c# - 使用 Automapper 10.1.1 和 HotChocolate 11.1 映射可查询对象

我正在尝试使用 Automapper 投影我的 EF Core 查询以允许在我的应用程序中使用第 3 层,但我在允许 HotChocolate 请求我的 DTO 上的字段并告诉 Automapper 将这些字段包含在投影过程中时遇到了一些麻烦。

提前几个重要的点:

  • 当两个属性都存在时,Automapper 将请求地图上的所有 NavigationProperties
  • ExplicitExpansion设置存在时除外
  • 如果ExplicitExpansion在地图上设置,HotChocolate 无法IQueryable使用[UseProjection]

所以我可以一次性加载所有导航属性,也可以不加载。

如何告诉 ether HotChocolate 映射 my 中的实体IQueryable,或者如何在查询函数中获取所需的键来告诉 AutoMapper 使用该IQueryable<T>.ProjectTo()方法扩展哪些属性?

0 投票
1 回答
97 浏览

asp.net-core - 如何使用 FusionAuth API 密钥对 HotChocolate Graph API 进行身份验证/授权

我目前正在使用 HotChocolate 框架在 .net 核心中创建一个图形 API。我能够实现自定义 JWT Bearer 身份验证。但是,我们的项目需要将 FusionAuth 用作身份验证提供程序,我无法将其与项目集成。由于该项目是合作伙伴 api,因此我们希望使用 API 密钥身份验证。谁能提供有关我如何实施它的见解?我对这些东西有点陌生。任何帮助都感激不尽。

我使用HotChocolate.AspNetCore.Authorization了 JWT 身份验证包。提前致谢。