For the complete documentation index, see llms.txt. This page is also available as Markdown.

数据引擎

Zongsoft.Data 数据引擎的设计目标、能力和阅读入口。

数据引擎

Zongsoft.Data 是一个类 GraphQL 风格的 ORM 数据访问框架。它通过数据模式、映射文件、条件表达式和数据库驱动描述数据访问结构,目标是在不手写 SQL 的情况下完成复杂查询、导航、过滤、分页、分组、聚合和写入操作。

它不是把 SQL 换成另一种字符串 SQL,而是把数据访问拆成四个稳定层次:

  • 模型层:业务代码使用 POCO 类型或匿名对象。

  • 元数据层:.mapping 文件描述实体、字段、继承和导航关系。

  • 访问层:IDataAccess 暴露统一的查询、写入、聚合、导入和执行接口。

  • 驱动层:各数据库驱动把统一表达式转换为对应数据库语法并执行。

先理解对象关系与数据访问,再按首次查询按 Discussions 的建表、连接和论坛查询用例验证。业务规则组织见数据服务

特性

  • 支持严格 POCO 对象。

  • 支持读写分离。

  • 支持表继承相关操作。

  • 支持按业务模块隔离映射文件。

  • 使用数据模式描述查询和写入形状。

  • 提供多数据库驱动。

核心概念

选择入口

先看 数据模式查询与导航。这两页解释如何表达字段、导航属性、分页和排序。

先看 写入操作条件与操作元。这两页解释新增、更新、删除、增改和字段运算。

先看 连接配置驱动。这两页解释连接名、读写分离、驱动插件和部署检查。

按驱动阅读

常见驱动包括 SQL Server、MySQL、SQLite、DuckDB、PostgreSQL、TDengine、ClickHouse 和 InfluxDB。驱动通常以独立插件方式部署,并把数据驱动与连接设置驱动挂载到插件树。

已选定数据库时,可以直接进入 MySQLSQL ServerPostgreSQLSQLiteDuckDBClickHouseTDengineInfluxDB 项目页。

完整包名见 包与模块索引,部署方式见 插件文件与加载

按驱动阅读

典型调用

来源:src/Module.cs(节选;上下文见源文件)。

在这个调用中:

  • this.Services.ResolveRequired<IDataAccessProvider>() 从模块服务中解析数据访问提供者。

  • GetAccessor(this.Name) 按当前模块名称获取访问器;所示源码属于 Discussions 模块。

  • ??= 缓存访问器,供后续调用复用。

查询条件、返回字段、导航、排序和分页的用法,见数据访问接口查询与导航

下一步

数据模式数据访问接口写入操作

相关资源

最后更新于