最近对项目中应用的技术进行学习,学到Entity Framework这部分内容,马上被EF的魅力深深吸引了。现在开发者越来越关注如何加快开发效率,而EF无疑是值得我们开发者去学习的,它实际上是微软的ADO.NET的增强版本,是一个ORM框架。接下来就给大家简单介绍一下EF。
一、EF简单介绍
EF是一种ORM-对象关系映射(Object-RelationalMapping)框架,能够跟踪实体的变化,把我们在编程是使用的对象映射到底层的数据库结构。
ORM--广义上说,指的是面对对象的对象模型和关系型数据库的数据结构之间的相互转换;狭义上说,ORM是基于关系型数据库的数据存储,实现一个虚拟的面向对象的数据访问接口。理想情况下,基于这样一个面向对象的接口,持久化一个OO对象就不需要了解任何关系型数据库存储数据的实现细节了。
通过该图,我们可以看出,O对应程序中的类Customer,就是对象,我们知道R含义为Relational,对应数据当中的关系表;M表示程序中对象和数据库中关系表的映射关系。Mapping实际上是一个XML文件。ORM做到了关系数据和对象数据之间的映射,ORM可以通过映射关系自动产生SQL语句,ORM在业务逻辑层和数据层之间充当桥梁。
二、创建ADO.NET实体数据模型
创建过程可以分为三类:
1、DBFirst:先创建数据库,然后映射到实体
2、ModelFirst:先创建实体关系,然后生成数据库
3、CodeFirst:依赖代码生成数据关系
接下来以ModelFirst方式创建数据模型:
1)首先创建一个控制台应用程序,然后添加ADO.NET实体数据模型
2)选择空EF设计器模型(如果是DBFirst则选择来自数据库的EF设计器)
3)在生成的Model中右击新建实体和属性以及实体之间的联系
4)模型建好后,右击选择根据数据模型生成数据库
5)选择数据库,验证身份
6)完成后生成sql脚本,执行脚本生成数据库
DBfirst创建过程是先设计数据库,然后建立来自数据库的实体设计模型,选择从数据库更新模型即可。这两种方式没有本质区别,但是需要注意的是,当数据库中已存在大量数据时,如果对数据库结构进行改变,要先更改数据库,然后更新到模型;如果修改模型然后更新到数据库的话,会清空数据库的数据。