在 Hotchocolate GraphQL 中组织查询、变更和订阅的最佳实践和有效方法是什么 类

What is the Best Practice and Efficient way to organize Query, Mutation and Subscription classes in Hotchocolate GraphQL

组织查询、变更和订阅的最佳和有效方式是什么class?

  1. 部分class
  2. [ExtendObjectType(OperationTypeNames.Query)]
  3. 其他人?

有什么区别,幕后发生了什么?

在这个official docs 如果我们只是想在不同的文件中组织我们的一种类型的字段,我们可以在基于注释的方法中使用部分 classes。

但是在workshop中使用了ExtendObjectType

I have also asked the same question here

对于部分 classes,幕后并没有发生什么特别的事情,因为它只是一个常规的 C# 功能。 它的缺点是它们不能跨程序集使用,并且您不能替换或删除在另一个部分 class.

中定义的字段

另一方面,Hot Chocolate 正在将类型扩展与原始类型定义合并。它们跨程序集工作,并允许您隐藏或替换原始类型定义的成员。

正如您从文档中引用的那样,如果您只想将类型定义拆分到同一项目中的不同文件中,则部分 classes 更易于使用。对于组合这些多个文件(classes)的更热巧克力集成方式,应使用类型扩展。