微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 Hot Chocolate 时忽略输入对象类型中的只读属性

如何解决使用 Hot Chocolate 时忽略输入对象类型中的只读属性

我使用 Hot Chocolate 作为 GraphQL 服务器。我的所有模型都继承了一个基类,该基类包含一个没有公共设置器的属性

public class BaseModel
{
    ...

    public DateTime LastModified { get; private set; }
}

这些模型用作输出和输入对象。对于我的输入对象,我得到以下异常:

找不到与输入类型 SomeModel 兼容的构造函数。您必须提供具有可设置属性的公共构造函数或允许传入只读属性值的公共构造函数。无法设置以下属性:LastModified。

我可以添加 [GraphQLIgnore],但这也会忽略我的输出对象类型的属性

我尝试为我的基类注册一个类型以仅忽略我所有输入对象类型的属性

public class BaseModelInputType : InputObjectType<BaseModel>
{
    protected override void Configure(IInputObjectTypeDescriptor<BaseModel> descriptor)
    {
        descriptor.Ignore(x => x.LastModified);
    }
}

在启动时:

services.AddGraphQLServer()
    .AddType<BaseModelInputType>()
    .AddQueryType<Query>()
    .AddMutationType<Mutation>()

但这似乎只适用于具体的类。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。