该问题等同于 => 我们 为什么不直接利用字符串连接去连接数据库,而是通过EF Core去访问数据库呢?
解决的问题
为了解决面向对象与关系数据库存在的互不匹配的现象
作用
在关系型数据库和对象之间作一个映射,这样我们在具体的操作数据库的时候,就不用去和复杂的SQL语句打交道,只要像平时操作对象一样操作它就可以了
优点
-
隐藏了数据访问细节,“封闭”的通用数据库交互,ORM的核心。使我们的通用数据库交互变得简单易行,并且完全不用考虑SQL语句。快速开发,由此而来。
-
ORM使我们构造固化数据结构变得简单易行。之前我们需要将对象模型转化为一条一条的SQL语句,通过直连或是DB helper在关系数据库构造我们的数据库体系。现在基本上所有的ORM框架都提供了通过对象模型构造关系数据库结构的功能
缺点
-
自动化意味着映射和关联管理,代价是牺牲性能和灵活性
-
无法实现复杂的查询
-
影响性能。从系统结构上来看采用ORM的系统一般都是多层系统,系统的层次多了,效率就会降低。ORM是一种完全的面向对象的做法,而面向对象的做法也会对性能产生一定的影响。