HotChocolate GraphQL查询对嵌套数组字段进行page/filter/sort &g



HotChocolate Version=12.3.2.0

我希望能够对嵌套字段进行分页/筛选/排序。例如,如果user id = 1234,则获取用户的第一个文档集,然后获取文档集中的第一个docFile,按docFile createdDate排序。

public class User
{
public int Id {get;set}

[UsePaging]
[UseFiltering]
[UseSorting]
public List<Document> Documents { get; set; }
}

public class Document
{
[UsePaging]
[UseFiltering]
[UseSorting]
public List<DocFile> DocFiles { get; set; }
public User User {get;set;}
}

public class DocFile
{
public string Name {get;set}
public DateTime CreatedDate {get;set;}
public Document Document {get;set;}
}


[UseAppDbContext]
[UsePaging]
[UseProjection]
[UseFiltering]
[UseSorting]
public async Task<Connection<User>> GetUsersAsync(
IResolverContext context,
[ScopedService] DbContext dbContext,
CancellationToken cancellationToken
)
{
var dbResult = dbContext.Users.Filter(context).Sort(context).Project(context).ToArray();
var result = await dbResult.ApplyCursorPaginationAsync(context, cancellationToken);
return result;
}

GraphQL查询

users(
where: {id: {eq: 1234}} 
) {
nodes {
documents(first:1){
id
files(first:1 order:{createdDate: DESC}) {
nodes {                 
name
createdDate
}
}
}
}
}

但是当我执行GraphQL查询时,我目前得到以下错误:

"exceptionType"InvalidOperationException"message": "在类型'System.Linq '上没有泛型方法' orderbydescent '。Enumerable'与提供的类型参数和参数兼容。如果方法是非泛型的,则不应提供类型参数。">

你知道怎么做吗?

如果[UseSorting]注释来自HotChocolate.Types,这是旧的过滤方式(使用不同的语法)。那么你的查询应该是order_by

尝试[HotChocolate.Data.UseSorting]匹配您的查询。

最新更新