首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于AutoRegisteringObjectGraphType与GraphQL.net的使用的任何好例子

关于AutoRegisteringObjectGraphType与GraphQL.net的使用的任何好例子
EN

Stack Overflow用户
提问于 2020-06-22 20:08:34
回答 1查看 242关注 0票数 2

有人能帮助我获得一些示例代码,并举例说明AutoRegisteringObjectGraphType与asp.net核心项目的使用情况吗?我没有找到任何有文件的具体例子。

在这方面的任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

发布于 2021-12-15 16:14:22

下面是一个自动注册输入图类型的示例:

代码语言:javascript
复制
class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

Field<StringGraphType>("addPerson",
    arguments: new QueryArguments(
        new QueryArgument<AutoRegisteringInputObjectGraphType<Person>> { Name = "value" }
    ),
    resolve: context => {
        var person = context.GetArgument<Person>("value");
        db.Add(person);
        return "ok";
    });

下面是一个自动注册对象图类型的示例,它修改了一些字段:

代码语言:javascript
复制
class Product
{
    public int Id { get; set; }
    public string Name { get; set; }
    public DateTime LastUpdated { get; set; }
}

class ProductGraphType : AutoRegisteringObjectGraphType<Product>
{
    public ProductGraphType()
        : base(x => x.LastUpdated)
    {
        GetField("Name").Description = "A short name of the product";
    }
}

Field<ListGraphType<ProductGraphType>>("products", resolve: _ => db.Products);

请注意,您可能需要在依赖项注入框架内注册这些类:

代码语言:javascript
复制
services.AddSingleton<EnumerationGraphType<Episodes>>();
services.AddSingleton<AutoRegisteringInputGraphType<Person>>();
services.AddSingleton<ProductGraphType>();

或者,您可以注册打开的泛型类:

代码语言:javascript
复制
services.AddSingleton(typeof(AutoRegisteringInputGraphType<>));
services.AddSingleton(typeof(AutoRegisteringObjectGraphType<>));
services.AddSingleton(typeof(EnumerationGraphType<>));

在上面的示例中,仍然需要单独注册ProductGraphType。

您可以在这里尝试使用UTs:https://github.com/graphql-dotnet/graphql-dotnet/blob/c3ca5d68a119c126e4bd64bc7ae9faade76e53c7/src/GraphQL.Tests/Types/ComplexGraphTypeTests.cs#L85

文档中的示例链接:https://github.com/graphql-dotnet/graphql-dotnet/blob/master/docs2/site/docs/guides/known-issues.md

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62522682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档