网站设计 模板,手机社区网站模板,公司网站建设请示,如何在本地发布自己做的网站实体框架EF#xff08;Entity Framework#xff09;简介 文章目录 实体框架EF#xff08;Entity Framework#xff09;简介一、概述二、O/R Mapping是什么采用O/R Mapping带来哪些好处 三、Entity Framework架构3.1 下图展示了Entity Framework的整体架构3.2 Entity Framew…实体框架EFEntity Framework简介 文章目录 实体框架EFEntity Framework简介一、概述二、O/R Mapping是什么采用O/R Mapping带来哪些好处 三、Entity Framework架构3.1 下图展示了Entity Framework的整体架构3.2 Entity Framework架构详解EDM (Entity Data Model)LINQ to EntitisEntity SQLObject ServiceEntity Client Data Provider实体客户端数据提供器ADO.Net Data Provider 四、Entity Framework三种开发模式4.1 Code First (代码优先)4.2 Model First (模型优先)4.3 Database First (数据库优先) 五、Entity Framework的优势和缺点 一、概述
Entity Framework是微软官方提供的ORM工具ORM让开发人员节省数据库访问的代码时间将更多的时间放到业务逻辑层代码上。Entity Framwork提供变更追踪唯一性约束惰性加载、查询事务等功能。开发人员使用Linq语言对数据库操作如同操作Object对象一样省事。
Entity Framework使用场景
从数据库生成Class类。由实体类生成数据库表结构。通过数据库可视化器设计数据库同时生成实体类。
二、O/R Mapping是什么
ORM-Object/Relational Mapper即“对象-关系型数据映射组件”。对于O/R即 Object对象和 Relational关系型数据表示必须同时使用面向对象和关系型数据进行开发。ORM是将数据存储从域对象自动映射到关系数据库的工具。ORM主要包含3个部分域对象关系数据库对象、映射关系。ORM使类提供自动化CRUD,使开发人员从数据库API和SQL中解放出来。
采用O/R Mapping带来哪些好处 在具体的操作数据库的时候就不需要再去和复杂的SQL语句打交道只要像操作对象一样O/R Mapping工具会自动地将对象的操作转换为SQL语句操作。 提高学习和开发效率极大的降低开发成本。 简化代码减少BUG数量。 通过建立ORM框架能够大量减少程序开发代码开发数据层就比较简单大大减少了出错机会。 简化测试。只需测试业务逻辑的类和行为避免重复的JDBC测试 提高性能 对象级缓存( 缓存对象及其关系 )可以避免不必要的数据库存取极大的提高数据读写的性能。我们也可以节省用于系统调优的时间和工作量。 隔离数据源可以很方便的转换数据库 ORM可以将业务层与实际的数据存储隔开开发人员不需要关心实际存储的方式如果我们需要把SQL Server数据库换成ORACLE数据库只需要修改配置文件就可业务逻辑代码完全不需要修改。
三、Entity Framework架构
3.1 下图展示了Entity Framework的整体架构
3.2 Entity Framework架构详解 EDM (Entity Data Model) EDM包含三个主要部分概念模型、映射和存储模型 概念模型 概念模型包含模型类和它们之间的关系。这个将独立于你的数据库表设计 存储模型 存储模型是数据库设计模型它包括表、视图、存储过程和它们的关系及键 映射 映射由关于概念模型是怎样和存储模型映射的的信息组成 LINQ to Entitis
LINQ-to-Entities L2E是一个写对象模型查询的一个查询语言。它返回实体这些实体被定义在概念模型中。你可以在这里使用 LINQ 技能。 Entity SQL
Entity SQL是另外一种类似于 LINQ to Entity 的查询语言。然而它是一种比 L2E 难得多了并且开发者还要单独学习它 Object Service
对象服务是一个访问数据库数据并且返回数据的主要入口点。对象服务负责具体化这是一个将从实体客户端数据提供器下一层返回的数据转换成对象结构的一个过程。 Entity Client Data Provider实体客户端数据提供器
这一层的主要职责是把 LINQ-to-Entities 或者 Entity SQL 查询转换成能被底层数据库理解的 SQL 查询。它和 ADO.Net 数据提供器通信数据提供器依次地发送数据到数据库或者从数据库中检索数据。 ADO.Net Data Provider
这一层使用标准的 ADO.Net 和数据库通信
四、Entity Framework三种开发模式
Entity Framework支持3种开发方式分别是Code First、Model First及Database First
4.1 Code First (代码优先)
Code First模式是一种很cool的模式手动创建POCO全称Plain Old Class Object也是最基础的CLR Class实体类。数据层DbContext及映射关系通过Database.SetInitializer(本次采用dbcontext.Database.CreateIfNotExists方法)生成数据库自动生成方便快速、更易维护、非常灵活。
4.2 Model First (模型优先)
Model First我们称之为“模型优先”这里的模型指的是“ADO.NET Entity Framework Data Model”使用ModelFirst的前提是应用程序还没有创建相应的数据库咱们可以用Visual Studio通过设计系统相关的数据模型来生成数据库结构。当然和DataBase First的区别也是显而易见可以说是DataBaseFirst的逆向工程。
4.3 Database First (数据库优先)
简单、方便但是当项目大了之后会非常痛苦。
五、Entity Framework的优势和缺点
优点简单说就是Entity Framework省事做业务系统管理系统会减少很多代码程序员可以更关注业务实现本身。
缺点当处理大数据量和高并发时由于Entity Framework是自动化程度高所以在自定义优化这肯定一般所以处理大数据量和高并发时需要用最原始的访问数据库技术一点一点一步一步的进行手动优化,保证每一步都在掌握之中而不是依靠自动化。