一、ORM的概念
对象关系映射Object Relation Mapping ,通俗说:用操作对象的方式来操作数据库。是一种程序技术,用于实现面向对象编程语言里不同类型关系数据之间的转换,从效果上说,它其实是创造了一个可在编程语言中使用的“虚拟对象数据库”
关于使用服务端语言操作数据库-ADO.NET技术,ADO.NET技术学习程序分层时学习过Model层,而这里的模型层指的是在服务端编程语言中用来映射数据库中数据模型的一个对象映射。
而在ORM技术而言,可以理解为ORM主要是为了更方便快速的实现ADO.NET技术
ORM技术的优势
- 首先在学习编程中,最终都要学习的是访问数据库,而在C#语言中使用C#语言访问数据库技术是微软提供的ADO.NET技术
- 因此在做程序编程时,只要有关数据库的操作,我们总结出来一套经验:先写DBHelper,然后创建目标数据库中的数据对象模型,这个步骤很麻烦,但是又不得不写
- 实现更加方便快捷的开发,方便数据库移植
.NET中的ORM框架
1.NHibernate
2. MyBatis.NET
3. LinQ to SQL(已经不使用)
4. ADO.NET Entity Framework
二、EF的本质
EF底层仍然是对ADO.Net的封装。EF支持SQLServer、MYSQL、Oracle、Sqlite等所有主流数据库。
Object Services
它是Entity Framework提供的一系列操作业务对象的API。这些API都依赖Entity Client实现对数据库的访问
EDM实体数据模型
1.作用:将关系数据库模型映射为实体数据模型,由三部分组成,存放在一个扩展名为.edmx的XML文件中
2. SSDL:负责与数据库中的数据表做实体对应(就是将数据库中数据表结构和关系用XML文件描述)
3. MSL:将存储模型中的字段和概念模型中的属性对应
4. CSDL :概念模型对应的实体类,用实体类表示数据库中的对象
Entity Client实体代理
- 概念:Entity Framework实现了一套类似于ADO.NET中的数据库操作类,这些操作类称之为Entity Client
- 作用:用来操作EMD实体数据模型
ADO.NET Provider
- 作用:翻译成SQL语句,用来访问数据库
- 说明:Entity Framework是ADO.NET的一个技术子集
Entity Client和ADO.NET
- ADO.NET的连接类是向数据库发送SQL命令操作表或试图,Entity Client是向EDM发送Entity SQL
- Entity Client通过Entity Connection、Entity Command等类进行模拟ADO.NET,有自己的SQL语句
- Entity Client将查询转交给数据库提供者ADO.NET Provider,并由数据库提供者翻译为SQL语句
EF应用程序有以下优点
- 应用程序可以通过更加以应用程序为中心的概念性模型(包括具有继承性、复杂成员和关系的类型)来工作。
- 应用程序不再对特定的数据引擎或存储架构具有硬编码依赖性。
- 可以在不更改应用程序代码的情况下更改概念性模型与特定于存储的架构之间的映射。
- 开发人员可以使用可映射到各种存储架构(可能在不同的数据库管理系统中实现)的一致的应用程序对象模型。
- 多个概念性模型可以映射到同一个存储架构。
- 语言集成查询支持可为查询提供针对概念性模型的编译时语法验证。
转载:https://blog.csdn.net/dust__/article/details/106268237
查看评论