ORM(Object Relational Mapping)对象关系映射,一般指持久化数据和实体对象的映射。
那问题来了,什么要使用ORM?什么场景需要使用ORM呢?当然时为了存储数据,存储数据又需要引入各种数据库,比如SqlServer、Oracle、MySql等等,市场上各类型的数据库太多了,而每个数据库厂家又有自己的数据库驱动程序,以及各自一套的Sql语句的写法,基于此ORM的出现可以很好的解决这个问题。
ORM能为我们做什么?
1、抽象出接口,适配各个数据库驱动
2、通过泛型+反射实现统一的数据返回类型
3、提供一套公共的对象操作语法,比如lambda表达式、Linq等等,内部自动拼接和完成Sql语句的拼接。
4、提供数据缓存,我们知道跟数据库打交道是需要通过磁盘的,而程序是在内存中的,因此操作内存的数据比通过IO操作硬盘的速度是快N倍的。因此很多ORM都是提供缓存机制的。
5、降低了学习门槛,一个对sql语句并不熟悉的开发人员也可以很容易通过简易的ORM框架Api进行数据库的操作,降低了开发成本。
ORM虽然满足绝大多数的场景,但特殊情况下需要优化sql的场景下,我们还是需要手写Sql语句来优化的。
目前市场上比较优秀的.Net ORM有微软的EntityFramework,功能强大;NHibernate;开源Dapper,轻量级数据访问等等,以及各种优秀的开源ORM框架。当然还是首推EntityFramework,毕竟是微软官方的。
| 留言与评论(共有 0 条评论) |