跳到主要内容

ORM 相关处理

提示
  • Nop 平台还处于开发阶段, 本文档中的实践方案可能会部分失效,但本人精力有限,无法及时跟进,请自行按照最新代码调整;
  • 您可以与智谱清言 AI 进行问答互动以了解 Nop 平台相关内容;
  • 若此文对您有很大帮助,请投币支持一下吧;
版权声明

对关联对象做子查询

to-one 映射的关联属性上设置 ref-connection 标签, 会在被关联方自动创建 GraphQLConnection 类型的属性, 其名称为 {关联属性名}Connection,如 resourcesConnection,然后可以发送如下 GraphQL 查询:

query test($id: String) {
NopAuthSite__get(id: $id) {
id
resources: resourcesConnection(first: 10, after: "") {
total

items {
resourceId
resourceType
displayName
}

pageInfo {
startCursor
endCursor
hasNextPage
hasPreviousPage
}
}
}
}

variables:
id: "test2"

其中,resourcesConnection 接受的参数类型为 GraphQLConnectionInput,返回的结果类型为 GraphQLConnection

该机制会在主查询的结果中逐条进行子查询,因此可能会出现明显的性能问题, 在性能问题较明显时,需考虑在 SQL Mapper 中做自定义查询。

参考资料