EF 框架的简介、发展历史;ORM框架概念

一、EF 框架简介

EF 全称是 EntityFramework 。

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

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

如果不用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.【可读性】 代码的可读性更高.

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(迁移)”来将数据库部署到生产环境。当数据模型更改时,可以将更改部署到生产环境中,而不改变原有的数据

二、EF 发展历史

  1. EF的发展历史, Linq To Sql

EF版本

.net framework和IDE版本

主要功能

EF(or EF3.5)

Visual Studio 2008 SP1 (.NET 3.5 SP1)

基本的O/R映射支持,使用DB First开发模式

EF 4

Visual Studio 2010 (.NET 4.0)

支持POCO实体

延迟加载

提高单元测试能力

自定义的代码生成机制

支持Model First开发模式

EF 4.1

NuGet

提供简化的DbContext接口

支持Code First开发模式

EF 4.1.1

过渡版本

支持Power Tools工具

EF 4.2

过渡版本

解决bug并优化

EF 4.3

Visual Studio 2010 (.NET 4.0)

基于Code First开发模式的代码迁移策略 Migrations

EF 4.3.1

Visual Studio 2012 (.NET 4.5)

提供对 LocalDb 数据库的支持

EF 5

Visual Studio 2012 (.NET 4.5)

提供对枚举类型的支持

Table-Valued functions表值函数

空间数据类型(spatial types)

整体性能优化提升

实体模型设计器、多图模型

批量导入存储过程

EF 6

Visual Studio 2013 (.NET 4.5)

xxxxx

EF 6.0.1

Visual Studio 2013 (.NET 4.5)

xxxxx

EF 6.0.2

Visual Studio 2013 (.NET 4.5)

xxx

EF 6.1

Visual Studio 2013 (.NET 4.5)

xxx

  1. EF Core 的发展历史

EF Core 8.0

下一个计划的稳定版本是 EF Core 8.0 或 EF8,计划于 2023 年 11 月发布。

三、ORM框架概念

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

只要提供了持久化类与表的映射关系,ORM框架在运行时就能参照映射文件的信息,把对象持久化到数据库中。

当前ORM框架主要有五种:Hibernate(Nhibernate),iBatis,mybatis,EclipseLink,JFinal,Linq To Sql ,EntityFramework。

ORM是通过使用描述对象和数据库之间映射的元数据,在我们想到描述的时候自然就想到了xml和特性(Attribute).目前的ORM框架中,Hibernate就是典型的使用xml文件作为描述实体对象的映射框架,而大名鼎鼎的Linq则是使用特性(Attribute)来描述的。

更多:

ef core 读取text类型慢_ef core读取大字符串字段慢

EF Core 批量写入数据使用整理(二)Z.EntityFramework.Extensions.EFCore

EF Core 批量写入数据使用整理_EF Core批量插入数据(一)

猜你喜欢

转载自blog.csdn.net/u011127019/article/details/129212786