.NET HotChocolate 泛型类型分页

Posted

技术标签:

【中文标题】.NET HotChocolate 泛型类型分页【英文标题】:.NET HotChocolate generic type pagination 【发布时间】:2021-10-20 01:50:08 【问题描述】:

使用 Hot Chocolate 平台,我为我的列表创建了一个响应类型:ListResponseBase(IQueryable<T> Result, ResponseStatus status)。 然后我想UsePaging 进行查询:ListResponseBase<User> GetUsers()。 但我在架构构建步骤中收到错误消息:ListResponseBase 应该是可迭代的。 我什至使用UsePaging<User>(),但出现错误:无法从源获取数据。 我该如何解决这个问题?我的 ResponseBase 模式错了吗?那么我如何在所有通话中返回状态?谢谢。

编辑: 这是我的简单 ListResponseBase 类:

public class ListResponseBase<TResult>

    public IQueryable<TResult> Result  get; set; 
    public ResponseStatus Status  get; set; 

这是我的查询:

        [GraphQLName("user_getUsers")]
        [UsePaging]
        public ListResponseBase<User> GetUsers([Service] IUserService userService)
        
            return userService.GetUsers();
        

我的服务:

    public ListResponseBase<User> GetUsers()
    
        return new ListResponseBase<User>  Status = ResponseStatus.Success, Result = userRepository.GetUsers() ;  
    

最后是我的回购:

        public IQueryable<User> GetUsers()
        
            return context.Users;
        

【问题讨论】:

你能发布 ListResponseBase 类吗? @MichaelIngmarStaib 我只是编辑我的帖子。谢谢 【参考方案1】:

我只是通过将UsePaging 添加到我的存储库和ListResponseBase&lt;T&gt; 来解决此问题:

    public class ListResponseBase<TResult> 

    [UseOffsetPaging]
    public IQueryable<TResult> Result  get; set; 
    public ResponseStatus Status  get; set; 


 public interface IUserRepository

    User GetUser(int userId);
    [UseOffsetPaging]
    IQueryable<User> GetUsers();
    User GetUser(string externalId);

【讨论】:

以上是关于.NET HotChocolate 泛型类型分页的主要内容,如果未能解决你的问题,请参考以下文章

HotChocolate GraphQL 中的类型继承

HotChocolate 突变输入类型使用 int 而不是 ID

EF下泛型分页方法,更新方法

使用Hot Chocolate创建ASP.NET Core GraphQL服务

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

.NET 遇上 GraphQL使用 Hot Chocolate 构建 GraphQL 服务