Не работает атрибут расширения graphQl типов "BindMember" от HotChocolate.AspNetCore
В работе с пакетами HotChocolate.AspNetCore/Data испытываю проблемы при создании своего расширения для типа:
Расширяю queryType новым типом "orders":
public partial class Query : IGraphQlQuery<OrderResponse>
{
[GraphQLName("orders")]
[UsePaging(IncludeTotalCount = true)]
[UseProjection]
[UseFiltering]
[UseSorting]
public IQueryable<OrderResponse> GetEntities([Service] IGraphQlQueryHandler<OrderResponse> handler)
{
var orderResponses = handler.Handle();
return orderResponses;
}
}
Хочу расширить сам тип orders. Беру у родителя список id в попытке расширить и вернуть уже список нужных объектов в нужном типе.
[ExtendObjectType<OrderResponse>]
public class OrderResponseExtensions : IGraphQlTypeExtension<OrderResponse, Task<IEnumerable<ServicePlanResponse>>>
{
[GraphQLName("services")]
[BindMember(nameof(OrderResponse.ServiceIds))]
public async Task<IEnumerable<ServicePlanResponse>> Extend([Parent] OrderResponse orderResponse, [Service] IDbContext dbContext)
{
var servicePlanModels = dbContext.ServicePlans.Where(sp => orderResponse.ServiceIds.Contains(sp.Id));
return await servicePlanModels.Select(spm => new ServicePlanResponse()
{
Id = spm.Id,
ClientId = spm.ClientId,
TemplateId = spm.TemplateId
}).ToListAsync();
}
}
Но как только добавляю привязку к старому свойству ServiceIds через "BindMember" над методом, чтобы оно пропало со схемы начинаю ловить такое:
Ошибка:
No generic method 'Select' on type 'System.Linq.Enumerable' is compatible with the supplied type arguments and arguments. No type arguments should be provided if the method is non-generic.
Стектрейс:
at ServiceDelivery.Orders.Api.Configuration.AddGraphQl.<>c.<AddGraphQlServer>b__1_0(IError error) in /Users/artembutanov/RiderProjects/ServiceDelivery.Orders/ServiceDelivery.Orders.Api/Configuration/AddGraphQl.cs:line 20
at HotChocolate.Execution.Errors.FuncErrorFilterWrapper.OnError(IError error)
at HotChocolate.Execution.Errors.DefaultErrorHandler.Handle(IError error)
at HotChocolate.Execution.Processing.MiddlewareContext.<ReportError>g__ReportSingle|42_0(IError singleError)
at HotChocolate.Execution.Processing.MiddlewareContext.ReportError(IError error)
at HotChocolate.Execution.Processing.MiddlewareContext.ReportError(Exception exception, Action`1 configure)
at HotChocolate.Execution.Processing.Tasks.ResolverTask.TryExecuteAsync(CancellationToken cancellationToken)
Без атрибута BindMember все начинает работать, однако для того чтобы Services возвращал инфу, мне нужно запрашивать ServicesIds, чего я как раз делать не хочу