.net orm 框架演进之路
什么是ORM
ORM(Object-relational mapping),对象关系映射,是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。
ORM的方法论基于三个核心原则:
- 简单:以最基本的形式建模数据
- 传达性:数据库结构被任何人都能理解的语言文档化
- 精确性:基于数据模型创建正确标准化了的结构
- 优点
-
与传统的数据库访问技术相比,ORM有以下优点:
- 开发效率更高
- 数据访问更抽象、轻便
- 支持面向对象封装
缺点
- 降低程序的执行效率
- 思维固定化
从系统结构上来看,采用ORM的系统一般都是多层系统,系统的层次多了,效率就会降低。ORM是一种完全的面向对象的做法,而面向对象的做法也会对性能产生一定的影响。
- 主流orm框架:
-
SqlSugar (国内)
Dos.ORM (国内)
Chloe (国内)
StackExchange/Dapper (国外)
NHibernate (国外)
- FreeSql(国产)
-
SqlSugar是国人开发的一款基于.NET的ORM框架,是可以运行在.NET 4.+ & .NET CORE的高性能、轻量级 ORM框架,众多.NET框架中最容易使用的数据库访问技术。
EF微软官方推出的orm框架体积比较大,但是树大好乘凉,背后有微软做支持,很稳定安全,可以用于企业级的开发。
- NHibernate 之前用过,此框架是从java移植过来的,比较大,但是也是一款经典的orm框架同样适合企业级开发。
- Dapper :
纯对象化:增删查改都是基于 lambda 表达式树,全对象化编程,智能提示,编译检查,容错率极高。既稳定又灵活好用
高性能:轻量即高效,框架注重数据库访问,没有重度封装与设计,整个框架体积不足200KB。DataReader 向实体转换使用了 Emit 生成 il 代码的方式,避免反射带来大量计算损耗,实体映射速度比肩 Dapper,接近手写
多数据库:支持 SqlServer、MySql、Sqlite 以及 Oracle 等主流数据库,灵活切换数据库,亦可在一个项目中同时使用多种数据库