【问题标题】:.NET HotChocolate generic type pagination.NET HotChocolate 泛型类型分页
【发布时间】: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 我只是编辑我的帖子。谢谢

标签: .net graphql hotchocolate


【解决方案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);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-30
    • 2020-04-04
    相关资源
    最近更新 更多