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]
匹配您的查询。