首页 > 代码库 > EF浅析及示例分析
EF浅析及示例分析
数据作为软件的重要组成部分,它的存储和传递是每个软件必须考虑的事情。EF作为web应用程序开发过程中常用的数据处理解决方案,它是如何工作的,它的特点是什么?本文就此做个简单介绍。
最开始的时候,数据量比较小,并且没有涉及到数据库,我们使用变量作为载体,保存和传递数据,使用作用域的方式来界定变量的作用范围;这种方式的坏处就是,每个数据都需要一个变量,并且我们需要了解每个变量的作用域才能正确的使用它们。
接触到数据库以后,变量已经不能满足大批量数据的存储和传递,这时候DataTable表和实体出现了,我们将数据库的内容存储在实体中,在分层的软件中,这种结构的便捷性尤其明显,只需要在用到实体的那一层引用实体层即可,非常简单。
三层数据传递示意图:
在web的应用程序开发中,不可避免的要使用各种模式或者框架,单一的实体层不复存在了,这时候就需要引入一种新的数据交换方式。基于ORM的EF解决方案应运而生。
ORM(Object RelationMapping)对象关系映射,它解决了面向对象和数据库不匹配的问题。
EF(Entity Framework)实体框架,它可以在代码中将关系型数据库转换为类的形式,方便程序员的操作。
EF的工作方式:EF将数据库对象转换成了实体对象,将数据表字段转换成了属性,将数据表的关系转换成了结合属性,这样数据库的E/R模型将完全的对应对象模型,程序员可以用操作一般类的方式方便的操作数据库。
EF工作方式示意图:
类似于三层的划分,EF也将对象模型分为了三层,分别是概念层,对应层,存储层。概念层定义了对象模型,应用程序可以以对象的方式访问数据;存储层负责与数据库管理系统做实体对应,让数据正确的写入和读取;对应层负责将概念层和存储层联系在一起,以确保数据正确的输入和输出。
EF的三种模式那么实体对象或者实体类在代码中究竟以何种方式存在呢,它是model下的一个.edmx类。创建这个类有三种方式,分别是CodeFirst、ModelFirst和DBfirst。CodeFirst就是,先创建实体,然后映射产生数据库,ModelFirst是先创建数据模型,然后生成代码数据库,DBfirst是先创建数据库,然后创建实体。
下面以DBFirst为例,演示在mvc中EF的创建过程(C#)。
1创建数据库(略)
2 创建一个mvc架构(略)
3在model层添加一个新建项(略)
4选择ADO.NET实体数据模型
5 新建连接
服务器需要选择或者填写数据库服务器所在的IP地址,选择需要使用的数据库。
6 选择EF模型
这里提供了的DBfirst和CodeFirst,没有ModelFirst。
7 最后选择需要添加的数据表、视图等。
对象模型的创建已经完成,下一篇博客将会描述对象结构以及如何使用。
EF浅析及示例分析