ORM的全称是Object Relational Mapping,即对象关系映射。它的实现思想就是将关系数据库中表的数据映射成为对象,以对象的形式展现,这样开发人员就可以把对数据库的操作转化为对这些对象的操作。因此它的目的是为了方便开发人员以面向对象的思想来实现对数据库的操作。
ORM实现原理
以EntityFramework、NHibernate为代表
| 简介 | License | 优点 | 缺点 |
dapper | 单文件、迷你orm框架,支持poco及动态类型 http://code.google.com/p/dapper-dot-net | Apache License 2.0 可以免费商用 | 执行效率高 单个文件,无其他依赖 | 使用poco时,属性与数据库表的映射无法灵活配置,难以实现Repository模式 |
Massive | 单文件仅几百行代码,仅支持动态类型 http://blog.wekeroad.com/helpy-stuff/and-i-shall-call-it-massive | New BSD License 可以免费商用 | 执行效率高 单个文件,无其他依赖 | 无法使用poco |
PetaPoco | 单文件、迷你orm框架,支持poco http://www.toptensoftware.com/petapoco | Apache License 2.0 可以免费商用 | 执行效率高 单个文件,无其他依赖 poco与数据库表的映射可以灵活配置 | 密集执行sql时有bug(已修复) |
对象关联、事务、缓存等高级特性支持较少。
特性 | 支持情况 |
POCO | 支持 |
自增ID支持 | 支持 |
枚举类型支持 | 支持 |
事务 | 支持(但是要求事务内的操作必须在一个PetaPoco database 实例内) |
Stored Procedures | 支持 |
基于数据库自动生成POCO | 支持 |
SQL跟踪 | 支持 |
支持SQL Server2005~2008r2 | 支持 |
支持MySQL | 支持 |