ORM和微ORM有什么区别?

16
请说明(big) ORM和micro ORM之间的区别。微型ORM相对于大型ORM的优点是什么?例如,实体框架ORM和Dapper微型ORM之间的区别。

1
这有点不同,但可能会有所帮助:https://dev59.com/xVcP5IYBdhLWcg3w9-ja#43590624。这是关于ADO.NET与Dapper的比较:https://dev59.com/DlYN5IYBdhLWcg3wO14v#47796179。 - Amit Joshi
1个回答

15
它们只是不同的工具。微ORM的主要目标是去除许多数据访问代码中不需要的层次结构 - 基本上提供最小的API,尝试通过提供简单性所带来的性能优势来平衡这一点。例如,在ORM中可能会找到但在微ORM中可能不可用的内容包括(取决于使用的特定工具和引入的其他扩展库):
  • 子成员的惰性加载(可能通过多态运行时类型生成,也可能通过代码生成)
  • 标识跟踪
  • 更改跟踪
  • 支持多个后端数据库上任意数据模型的丰富复杂映射系统
  • 从复杂LINQ表达式树或其他DSL生成复杂查询
  • 工作单元API - 实质上是一个 SubmitChanges() 方法,它确定并应用了一批相关变更
请注意,它们并不是互斥的:您可以在同一代码库中使用两种方法,具体取决于不同地方所需的内容。

但即使使用微型ORM,您仍然可以通过数据库事务实现工作单元。即使是ado.net,它仍然是一个API。 - MikeSW
@MikeSW 我的意思是:一种工作单元 自动 由某种变更跟踪提供,具有“全有或全无”提交;在微型ORM中,是的,您可以通过数据库事务完成所有这些操作:但您需要自己完成 - Marc Gravell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接