我应该使用什么来代替 .net GraphQL FieldAsync 方法?

问题描述 投票:0回答:1

.net中有一个我用GraphQL开发的Web API服务。我使用的库如下:

<PackageReference Include="GraphQL.MicrosoftDI" Version="8.0.2" />
<PackageReference Include="GraphQL.Server.Transports.AspNetCore" Version="8.0.2" />
<PackageReference Include="GraphQL.Server.Ui.Playground" Version="8.0.2" />
<PackageReference Include="GraphQL.SystemTextJson" Version="8.0.2" />

我有一个 IExampleService 接口。我们假设该接口中有一个方法可以从数据库中检索列表。我必须以 Task 格式返回它。

public class ExampleQuery : ObjectGraphType
{
    private readonly IExampleService _exampleService;

    public ExampleQuery(IExampleService exampleService)
    {
        _exampleService = exampleService;

        FieldAsync<ListGraphType<ExampleType>>(
            "Examples",
            resolve: async context =>
            {
                return await _exampleService.GetExamples();
            }
        );
    }
}

上面的代码工作正常,但会给出如下警告:

CS0618:'ComplexGraphType.FieldAsync(字符串, 字符串?、QueryArguments?、Func、 Task>?, string?)' 已过时:'请使用 Field() 之一 返回 FieldBuilder 的方法及其上定义的方法或只是 直接使用 AddField() 方法。此方法将在 v9 中删除。 示例.API

GQL004:不要使用过时的“字段”方法Example.API

我已经在同步函数中使用了 AddField 方法。但是当我需要使用异步方法时,我应该使用哪种方法来代替 FieldAsync?

c# .net graphql warnings
1个回答
0
投票

你可以这样重写

Field<ListGraphType<ExampleType>>("Examples")
    .ResolveAsync(async => await _exampleService.GetExamples());

或者只是允许提供的自动代码修复为您重写它 enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.