我创建了一个新的对象类型,但出现错误“没有解析器”

时间:2019-12-13 10:06:50

标签: c# graphql hotchocolate

我正在使用starwars示例测试HotChocolate。

我添加了Enityframework和sql块,并使用名为“ Merchants”的表将所有内容挂钩。

直到现在一切正常,我可以使用Graphiql查询“我的商家”表。

我的问题是当我在startup.cs中添加商户类型时:

    services.AddGraphQL(sp => SchemaBuilder.New()
        .AddServices(sp)

        // Adds the authorize directive and
        // enable the authorization middleware.
        .AddAuthorizeDirectiveType()

        .AddQueryType<QueryType>()
        .AddMutationType<MutationType>()
        .AddSubscriptionType<SubscriptionType>()
        .AddType<HumanType>()
        .AddType<DroidType>()
        .AddType<EpisodeType>()
        .AddType<MerchantType>() ///----> My addition
        .Create(),
        new QueryExecutionOptions
        {
            TracingPreference = TracingPreference.Always
        });

这是类型

 public class MerchantType : ObjectType<Merchant>
    {
        protected override void Configure(IObjectTypeDescriptor<Merchant> descriptor)
        {
            descriptor.Name("Merchant");

            descriptor.Field("Id")
                .Type<NonNullType<StringType>>();

            descriptor.Field("MerchantName")
                .Type<StringType>();

            descriptor.Field("MerchantSlogan")
                .Type<StringType>();


        }
    }

我的应用启动后立即收到此错误:

HotChocolate.SchemaException: 'Multiple schema errors occured:
The field `Merchant.Id` has no resolver. - Type: Merchant
The field `Merchant.MerchantName` has no resolver. - Type: Merchant
The field `Merchant.MerchantSlogan` has no resolver. - Type: Merchant
'

我是否需要为每个字段实现一个解析器?即使我没有更改数据。

1 个答案:

答案 0 :(得分:0)

我的错误,我将.Field(“ Id”)替换为Field(t => t.Id)和所有字段。