EF框架简介

简介: EF框架简介

EF 全称是 EntityFramework 。

  Entity Framework是ADO.NET 中的一套支持开发面向数据的软件应用程序的技术,是微软的一个ORM框架。

  ORM框架(Object Relational Mapping) 翻译过来就是对象关系映射。

二、EF实体框架整体架构:

架构组件:

 EDM(实体数据模型): EDM由三个主要部分组成 - 概念模型,映射和存储模型。


 Conceptual Model:概念模型包含模型类及其关系。这将独立于您的数据库表设计。

 Storage Model:存储模型是包括表,视图,存储过程及其关系和密钥的数据库设计模型。

 Mapping:映射由有关概念模型如何映射到存储模型的信息组成。


 LINQ to Entities: LINQ to Entities是一种用于针对对象模型编写查询的查询语言。它返回在概念模型中定义的实体。你可以在这里使用你的LINQ技能。


 Entity SQL:实体SQL是另一种查询语言(仅适用于EF 6),就像LINQ to Entities一样。然而,这比L2E稍微难一些,开发者需要单独学习。


 ObjectServices:对象服务是访问数据库中的数据并将其返回的主要入口点。对象服务负责实现,这是将从实体客户端数据提供者(下一层)返回的数据转换为实体对象结构的过程。


 Entity Client Data Provider:此层的主要职责是将LINQ-to-Entities或实体SQL查询转换为底层数据库可以理解的SQL查询。它与ADO.Net数据提供者通信,而ADO.Net数据提供者又从数据库发送或检索数据。


 ADO.Net Data Provider:该层使用标准的ADO.Net与数据库进行通信。

三、EF 的优势(与 的对比)

  如果不用ORM框架,我们一般这样来使用ADO.NET进行数据库开发:

1.将ADO.NET对数据库的操作封装到一个类里SqlHelper中

2.在DAL层调用SqlHelper

3.其他层再调用DAL进行数据库操作


1.【逻辑】业务逻辑和数据存取逻辑分离开来;

2.【新增操作】 EF:一次连接,执行多条sql;SqlHelper里使用一般写法,连接又无法释放,用using,会造成多次连接重置;

3.【更新操作】 EF自动优化,只update set 有变化的字段,EF也可以很方便地只更新 实体的指定属性,产生的sql语句里的set后的字段会更少;

4.【智能提示】 用linq, lamda表达式 有智能提示,写错了编译不过;写sql语句字符串,调sqlhelper,sql语句写错一样编译通过;

5.【安全】 省去了防止sql注入的麻烦;

6.【数据库变更】使用EF,切换较方便;

7.【效率】 使用EF要比使用Ado.net开发效率高;

8.【可读性】 代码的可读性更高.

四、EF框架的三种模式

Database First(数据库优先)

 如果已经拥有数据库,Visual Studio中内置的Entity Framework设计器可以自动生成一个数据模型,该模型由对应于现有数据库对象(如表和列)的类和属性组成。有关数据库结构,数据模型及映射之间的信息以XML格式存储在.edmx文件中。实体框架设计器提供了一个可视化界面,您可以使用它来显示和编辑.edmx文件。

Model First(模型优先)

  如果您还没有数据库,则可以使用Visual Studio中的Entity Framework设计器在.edmx文件中创建一个模型。当模型建完后,可以执行.edmx文件来创建数据库。

Code First(代码优先)

 无论您是否拥有数据库,都可以使用Code First。如果没有数据库,可以编写类和对应于表和列的属性。如果有数据库,那么Entity Framework可以生成与现有表和列对应的类和属性。如果使用Code First创建数据库,则可以使用“migration(迁移)”来将数据库部署到生产环境。当数据模型更改时,可以将更改部署到生产环境中,而不改变原有的数据


相关文章
|
10月前
|
SQL 存储 开发框架
EF框架如何搭建
EF框架如何搭建
|
10月前
|
API 数据库
如何使用WCF框架和EF框架实现对数据库的操作
如何使用WCF框架和EF框架实现对数据库的操作
|
11月前
|
存储 关系型数据库 数据库连接
EF框架(一)搭建过程
EF:Entity Framework的简写,实体框架,EF是ADO.net的一组支持开发面向数据的软件应用程序的技术,是微软的一个orm框架。介绍EF框架之前,先带大家了解一下ORM。
|
SQL 存储 数据处理
5.1EF Core原理
对普通集合使用where等方法查询出来的返回值为IEnumerable类型 但是对DbSet使用用where等方法出查询出来的返回值为IQueryable类型
|
SQL 开发框架 .NET
5.2 EF Core性能优化
上文讲了实体类的跟踪以便执行SaveChanges操作。但是如果是查询操作,则实体类便不需要进行跟踪。
|
关系型数据库 MySQL Windows
EF入门
EF入门
153 0
|
存储 开发框架 关系型数据库
【菜鸟看框架】——浅谈EF框架
【菜鸟看框架】——浅谈EF框架
104 0
【菜鸟看框架】——浅谈EF框架
|
存储 SQL XML
Entity Framework学习笔记——EF简介(一篇文章告诉你什么是EF)
Entity Framework是以ADO.NET为基础,面向数据的“实体框架”。以下简称EF。 它利用了抽象化数据结构的方式,将每个数据库对象都转换成应用程序对象 (entity),数据字段都转换为属性 (property),关系则转换为结合属性 (association),让数据库的 E/R 模型完全的转成对象模型,如此让程序设计师能用最熟悉的编程语言来调用访问。
Entity Framework学习笔记——EF简介(一篇文章告诉你什么是EF)
|
SQL 关系型数据库 C#
.NET(C#)有哪些主流的ORM框架,SqlSugar,Dapper,EF还是...
前言 在以前的一篇文章中,为大家分享了《什么是ORM?为什么用ORM?浅析ORM的使用及利弊》。那么,在目前的.NET(C#)的世界里,有哪些主流的ORM,SqlSugar,Dapper,Entity Framework(EF)还是ServiceStack.OrmLite?或者是你还有更好的ORM推荐呢? 如果有的话,不防也一起分享给大家。
15090 0