1.1 几款流行的 ORM 架构设计 — 对比与驰骋 BPM 选型指南
文档性质:技术宣传 / 方案选型
版本:2026-06
驰骋 ORM 依据:CCFlow/Components/BP.En30
姊妹文档:驰骋 BPM ORM 设计技术报告(源码级深度剖析)
写在前面:ORM 不是「引个包就能 CRUD」
对象关系映射(ORM)解决的是业务对象与关系型数据库之间的鸿沟。但二十余年演进下来,业界早已分化出多种架构哲学——有的追求「像写 C# 一样写查询」,有的追求「SQL 零损耗」,有的则把 ORM 升格为企业应用元数据框架。
选错 ORM,代价往往不在第一天,而在第二年:表单要重做、主从表要手写、流程表单与组织权限无法共用一套字段语义、国产化数据库要逐条改 SQL……
本文列出六类主流 ORM 架构,并将驰骋 BPM 自研 ORM(BP.En30)作为同等对比项,从性能、扩展性、架构能力三个维度做深层次评估,帮助您在「通用业务系统」与「流程 + 低代码 + 组织一体化平台」之间做出正确判断。
一、六类主流 ORM 架构一览
1.1 架构地图(一句话定性)
| 类型 | 代表产品 | 核心隐喻 | 一句话 |
|---|---|---|---|
| 标准全功能 ORM | Entity Framework Core、Hibernate/JPA | 智能翻译官 | 用类与导航属性描述世界,框架生成 SQL 并跟踪变更 |
| 微 ORM | Dapper、SqlMapper | 精密扳手 | 几乎不抽象,手写 SQL + 轻量对象填充,极致性能 |
| SQL 映射器 | MyBatis / MyBatis-Plus | 合同工 | XML/注解写 SQL,Java/C# 只负责调用与映射 |
| 类型安全 SQL 构建器 | jOOQ、SqlKata | 语法检查员 | 用代码拼 SQL,编译期校验,兼顾灵活与类型 |
| Active Record | Ruby on Rails ActiveRecord、Laravel Eloquent | 一物一表 | 模型类即表,链式查询,快速 CRUD |
| 元数据驱动应用 ORM | 驰骋 BP.En30(Map/Attr/Entity) | 蓝图 + 施工一体化 | 一份 Map 同时描述表结构、控件、主从、权限与查询 |
1.2 架构关系图
读图要点:驰骋 ORM 与 EF/Hibernate 在「抽象程度」上相近,但在「应用语义」(表单、主从、组织、流程)上显著更高——这是品类差异,不是简单的「谁更强」。
二、直观对比:用场景说话
2.1 盖房子类比
| ORM 类型 | 类比 | 擅长 | 不擅长 |
|---|---|---|---|
| EF Core / Hibernate | 标准化住宅模块 | 卧室、客厅、水电管线有统一规范 | 每户要完全不同的户型时要大量定制 |
| Dapper | 自己买砖砌墙 | 结构简单、要省料、要快 | 复杂户型图纸得自己画 |
| MyBatis | 施工队按图纸干 | SQL 可控、DBA 友好、报表复杂查询 | 图纸(XML)多了难维护 |
| jOOQ | 带校核的施工图 | 复杂 SQL 组合、类型安全 | 不管 UI、不管表单 |
| Active Record | 精装小户型 | 博客、电商 SKU、快速上线 | 超大复杂领域模型易臃肿 |
| 驰骋 ORM | 园区总体规划 + 单体楼一体化 | 流程表单、主从、多对多、组织权限、低代码设计器 | 与 BPM 无关的纯 .NET 微服务 |
2.2 开发同一需求要多少「额外工作」
以**「用户表 + 部门外键 + 一人多部门维护 + 列表查询 + 权限控制」**为例:
| 能力项 | EF Core | MyBatis | Dapper | 驰骋 ORM |
|---|---|---|---|---|
| 实体/表映射 | 特性或 Fluent API | XML/注解 | 手写 | Map.AddTB* / AddDDLEntities |
| 多部门维护 UI | 自研 | 自研 | 自研 | AttrsOfOneVSM.AddBranches 内置 |
| 列表查询条件 | LINQ 或动态表达式 | 动态 SQL 片段 | 拼字符串 | SearchNormals 声明式 |
| 数据范围权限 | 过滤器/拦截器 自研 | 拦截器 自研 | 自研 | UAC + AddHidden 内建 |
| 与表单设计器打通 | 无 | 无 | 无 | Map ↔ Sys_MapAttr 双向 |
| 与流程选人引擎 | 无 | 无 | 无 | Port_* 实体 原生一体 |
结论(宣传核心):在驰骋 BPM 场景下,通用 ORM 只解决了约 30% 的问题(CRUD),其余 70%(主从、多对多维护、低代码、组织、权限)仍需重复建设;驰骋 ORM 在诞生之初就把这 70% 写进了 Map 元数据体系。

92

被折叠的 条评论
为什么被折叠?



