Graphql 热巧克力中基于注释的vs代码优先

Graphql 热巧克力中基于注释的vs代码优先,graphql,hotchocolate,Graphql,Hotchocolate,热巧克力中的code-First和Pure-code-First或Annotation-Based之间有什么区别?在GraphQL模式透视图和热巧克力中,每种编码方法的优缺点是什么?基于注释或纯代码-First:在这种方法中,我们不关心GraphQL模式类型,我们只编写干净的C代码,自动转换为GraphQL类型 代码优先:在这种方法中,我们使用模式类型,模式类型允许我们将GraphQL类型配置与.NET类型分开当我们不希望业务对象上有任何热巧克力属性时,这可能是正确的方法。纯代码优先被重命名为基

热巧克力中的
code-First
Pure-code-First
Annotation-Based
之间有什么区别?在GraphQL模式透视图和热巧克力中,每种编码方法的优缺点是什么?

基于注释或纯代码-First:在这种方法中,我们不关心GraphQL模式类型,我们只编写干净的C代码,自动转换为GraphQL类型


代码优先:在这种方法中,我们使用模式类型,模式类型允许我们将GraphQL类型配置与.NET类型分开当我们不希望业务对象上有任何热巧克力属性时,这可能是正确的方法。

纯代码优先
被重命名为基于注释的。所以这两个是一样的

这取决于你最终使用的架构和品味。您不必先编写代码或基于注释,还可以混合匹配

默认情况下,热巧克力会推断所有属性及其类型。也就是说,当您返回一个
用户时,
将自动为其创建一个包含该用户所有属性的类型。 如果要更改类型的配置,可以使用注释或创建ObjectType`

在幕后,所有的方法(甚至先是模式)都有相同的表示。它们都被转换为
code-first
方法

在代码优先的方法中,您使用类型继承和fluent API来配置类型

公共类用户
{
公共字符串Id{get;set}
}
公共类UserType:ObjectType
{
受保护的覆盖无效配置(IObjectTypeDescriptor描述符)
{
descriptor.Field(x=>x.Id).Type();
字段(x=>x.GetAddressAsync(默认,默认));
}
公共类解析器
{
公共任务