每天只写这些玩意儿,现在提高一下理论
Entity Framework 简介
1.Entity Framework的全称为asp.net Entity Framework,简称为EF
1.1与Ado.net的关系 Entity Framework(实体框架)是微软以Ado.net为基础发展出来的对象关系对应(O/R Mapping)的解决方案;
Entity Framework是ADO.net中的一组支持开发面向数据的软件应用程序的技术,是微软的一个ORM框架。
Entity Framework 的特点:
支持多种数据库(MSSQL,Oracle,Mysql和DB2) 强劲的映射引擎,能很好地支持存储过程。
提供Visual Studio集成工具,进行可视化操作。
能够与ASP.net、wpf、WCF、WCF data services 进行很好的集成。
1.2 什么是O/R Mapping
广义上,ORM指的是面向对象的对象模型和关系型数据库的数据结构之间的相互转换。
狭义上,ORM可以被认为基于关系型数据库的数据存储,实现一个虚拟的面向对象的数据访问接口。
2. ORM in EF Entity framework利用了抽象化数据结构的方式,将每个数据库对象都转换成应用程序对象(entity),而数据字段都转换为属性(Property), 关系则转换为结合属性(Association), 让数据库的E/R模型完全转换成对象模型,如此让程序设计者能用最熟悉的编程语言来调用访问, 在抽象化结构之下,则是高度集成与对应结构 的概念层,对应层和储存层,以及支持Entity framework的数据提供者(provider),让数据访问的工作得以顺利的进行。
a.概念层:负责向上的对象和属性的显露与访问 。
b.对应层:将上方的概念层和底下的储存层的数据结构对应在一起
c.储存层:依不同数据库与数据结构而显露出实体的数据结构体,和Provider一起,负责实际对象数据库的访问和SQL的产生。
3.EF的优缺点
a.极大的提高了开发效率,能够很好的与VS开发工具融合,开发过程中代码都是强类型,写代码效率非常高,自动化程序非常高,采用命令的编程。
b.EF提供的模型设计器非常强大,不仅仅带来了设计数据库的革命,其附带来的自动化生成模型代码的功能也极大地提高了开发和框架设计的效率。
c.EF跨数据库支持是ORM框架的主要功能之一,有着仅仅通过改变配置就可以做到跨数据库的能力,更换数据库非常方便。
a.EF性能不好,性能有损耗,(生成SQL脚本阶段)在复杂查询的时候生成的SQL脚本效率不是很高。
b.数据库端性能损耗是一样的,但是将对象状态转换为SQL语句是会损失性能。