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

使用.NET(Strawberryshake&HotChocolate)实现Cursor分页遇HC0051错误,怎改maxAllowedItems?

解决HotChocolate中maxAllowedItems限制的方法

你遇到的HC0051错误是HotChocolate的分页保护机制触发的,当前请求的800条数据超出了默认的50条限制,以下是几种修改maxAllowedItems的方式:

1. 单独配置目标查询字段

如果仅需调整pfConceptSupplierData字段的限制,可通过特性或字段配置实现:

  • 在Resolver方法上添加特性:
[Paging(MaxPageSize = 800)] // 设置你需要的最大每页项数
public async Task<Connection<ConceptSupplierData>> PfConceptSupplierDataAsync(...)
{
    // 你的Resolver业务逻辑
}
  • 代码优先的字段配置:
public class QueryType : ObjectType<Query>
{
    protected override void Configure(IObjectTypeDescriptor<Query> descriptor)
    {
        descriptor.Field(f => f.PfConceptSupplierDataAsync(...))
            .Type<ConnectionType<ConceptSupplierDataType>>()
            .UsePaging(maxPageSize: 800); // 指定该字段的最大分页大小
    }
}

2. 全局设置默认值

若要统一修改所有分页字段的默认限制,可在服务配置中全局配置:

builder.Services.AddGraphQLServer()
    .AddQueryType<Query>()
    // 其他GraphQL服务配置...
    .SetPagingOptions(new PagingOptions
    {
        MaxPageSize = 800 // 全局默认的最大每页项数
    });

注:全局配置会被单个字段的特性或字段级配置覆盖。

3. 动态调整限制(按需使用)

如果需要根据请求上下文(如用户权限)动态调整限制,可在Resolver中通过IPagingContext修改:

public async Task<Connection<ConceptSupplierData>> PfConceptSupplierDataAsync(IPagingContext pagingContext, ...)
{
    // 示例:针对特定用户放宽限制
    if (/* 权限判断逻辑 */)
    {
        pagingContext.MaxPageSize = 800;
    }
    // 你的Resolver业务逻辑
}

修改时建议根据实际业务场景设置合理的最大值,避免单次请求获取过多数据影响服务性能。

内容的提问来源于stack exchange,提问作者Kishan Jamariya

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 10:23:20