You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

HotChocolate GraphQL是否不支持record struct?服务器正常IDE提示Schema不可用

问题:HotChocolate不支持record struct/struct导致Chilicream IDE提示“schema unavailable”

我用record struct定义了Money类型,DemoQuery类的GetMoney方法返回该类型,服务器运行无报错,但Chilicream IDE提示“schema unavailable”;将record struct改为record或class后,代码可正常运行。

代码示例:

public record struct Money(long Cents);
public class DemoQuery
{
    public Money GetMoney() => new Money(1);
}

临时解决方案

无需修改Money类型的情况下,可通过显式映射解决:

services.AddGraphQLServer()
    .BindRuntimeType<Money, LongType>()
    .AddTypeConverter<Money, long>(money => money.Cents)
...

HotChocolate不支持record struct/struct的原因

  • HotChocolate默认优先适配引用类型(class/record),对值类型(struct/record struct)的元数据解析逻辑不同,自动类型发现机制无法自动推断其对应的GraphQL类型,导致IDE无法生成可用的schema。
  • record struct属于值类型,继承了struct的特性,HotChocolate不会默认将其自动映射为GraphQL标量类型或复杂类型,必须显式指定类型绑定和转换器才能完成类型映射。

内容的提问来源于stack exchange,提问作者Xiaoguo Ge

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 04:40:24