0

データを読み取るためのリゾルバーがルート Query オブジェクトに属している .net コア用の Hot Chocolate ライブラリを使用して、標準の GraphQL 実装を実現しようとしています。このような:

{
  Query {
    GetTodo {
      Id
    }
  }
}

これは、ドキュメントに従って作成したものですが、期待どおりに機能しません。

startup.cs

        public void ConfigureServices(IServiceCollection services)
        {
            services.AddDbContext<ChocodotContext>();
            services.AddGraphQL(
                SchemaBuilder.New()
                .AddQueryType<QueryType>()
                .BindResolver<TodoQueries>()
                .Create()
            );
        }

クエリ.cs

using HotChocolate.Types;

namespace Queries
{
    public class QueryType : ObjectType
    {
        protected override void Configure(IObjectTypeDescriptor descriptor)
        {
            
        }
    }
}

TodoQueries.cs

using System.Threading.Tasks;
using HotChocolate;
using HotChocolate.Types;
using Microsoft.EntityFrameworkCore;
using System.Linq;
using Models;

namespace Queries
{
    [GraphQLResolverOf(typeof(Todo))]
    [GraphQLResolverOf("Query")]
    public class TodoQueries
    {
        public async Task<Todo> GetTodo([Service] ChocodotContext dbContext) {
            return await dbContext.Todos.FirstAsync();
        }        
    }

    public class TodoQueryType : ObjectType<TodoQueries> {
        
    }
}

何が正しくないのですか?

4

1 に答える 1

1

少し変更する必要があります。

query {
  todo {
    id
  }
}

startup.cs

public void ConfigureServices(IServiceCollection services)
{
    services.AddDbContext<ChocodotContext>();
    services.AddGraphQL(serviceProvider =>
        SchemaBuilder.New()
            .AddServices(serviceProvider)
            .AddQueryType<Query>()
            .AddType<TodoQueries>()
            .Create()
    );
}

クエリ.cs

using HotChocolate.Types;

namespace Queries
{
    public class Query
    {

    }
}

TodoQueries.cs

[ExtendObjectType(Name = "Query")]
public class TodoQueries
{
    // Side note, no need for async/await while it returns Task<>
    //
    public Task<Todo> GetTodo([Service] ChocodotContext dbContext) {
        return dbContext.Todos.FirstAsync();
    }        
}

HotChocolate 10.5.2 でテスト済み

ソリューションのソース - ChilliCream ブログ、HotChocolate 10.3.0 記事、TypeAttributesセクション。

于 2020-09-03T14:40:24.690 に答える