一、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批量插入数据(一)

EF 框架的简介、发展历史;ORM框架概念相关推荐

  1. ORM框架如何选型——各大ORM框架比较

                                             ORM框架如何选型--各大ORM框架比较 现有ORM框架或ORM相关框架主要有Hibernate,Mybatis.这两 ...

  2. Bee框架(速学)ORM框架(速学教程)

    Bee框架(速学)ORM框架(速学教程) Bee 是一个ORM框架.关注:省时/优雅.简易.自动( Tea: Timesaving/Tasteful, Easy, Automatic) 特性.减少开发 ...

  3. ORM框架简介和常用ORM框架

    目录 1.ORM简介 1.1什么是ORM 1.2.ORM技术的特点 3. 常用ORM框架 3.1.Hibernate 简介 优点 3.2.Mybatis 简介 功能结构 优点 1.ORM简介 1.1什 ...

  4. 什么是ORM框架?常用的orm框架有哪些?能否不用ORM框架直接使用SQL语句创建WebAPI?

    ORM(Object-Relational Mapping,对象关系映射)框架是一种将面向对象程序中的实体类(对象)与关系型数据库中的表之间建立映射关系的技术.它允许开发人员使用面向对象编程语言来操作 ...

  5. 探秘HDFS —— 发展历史、核心概念、架构、工作机制 (上)| 博文精选

    戳蓝字"CSDN云计算"关注我们哦! 作者 |  Mr-Bruce 转自 | CSDN博客 责编 | 阿秃 几周前,笔者做了一个与HDFS有关的技术分享,以知识普及为目的,主要分享 ...

  6. 序列化框架MJExtension详解 + iOS ORM框架

    当开发中你的模型中属性名称和 字典(JSON/XML) 中的key 不能一一对应时, 或者当字典中嵌套了多层字典数组时..., 以及教你如何用 MJExtension 配置类来统一管理你的模型配置, ...

  7. 车联网大数据框架_大数据基础:ORM框架入门简介

    作为大数据开发技术者,需要掌握扎实的Java基础,这是不争的事实,所以对于Java开发当中需要掌握的重要框架技术,也需要有相应程度的掌握,比如说ORM框架.今天的大数据基础分享,我们就来具体讲一讲OR ...

  8. 流行的ORM框架简介

    摘自 李刚 著<Java EE企业级应用实战> 目前ORM框架的产品非常之多,除了个大公司.组织的产品外,其他一些小团队也在推出自己的ORM框架.目前流行的ORM框架有如下这些产品: (1 ...

  9. NET主流ORM框架分析

    接上文我们测试了各个ORM框架的性能,大家可以很直观的看到各个ORM框架与原生的ADO.NET在境删改查的性能差异.这里和大家分享下我对ORM框架的理解及一些使用经验. ORM框架工作原理 所有的OR ...

  10. Orm框架介绍和常见的Android Orm框架

    ORM(Object Relational Mapping)框架采用元数据来描述对象一关系映射细节,元数据一般采用XML格式,并且存放在专门的对象一映射文件中. 先介绍一下ORM的概念,以前也一直听说 ...

最新文章

  1. 机器学习论文推荐 | 2019 Reddit最受喜欢的5篇AI论文
  2. 刮刮乐html5效果擦除,利用HTML5的画布Canvas实现刮刮卡效果
  3. linux进程--自旋锁和互斥锁的区别(十五)
  4. 计算机应用基础白雪梅,白雪|
  5. JZOJ 3815. 【NOIP2014模拟9.7】克卜勒
  6. 订单操作-表结构分析与表创建
  7. SAP UI5 应用开发教程之六十三 - 基于 OData V4 的本地 Mock Server 实现的深入介绍试读版
  8. 基于React开发范式的思考:写在Lesx发布之际
  9. html推箱子怎么清除走过的,第九讲:HTML5该canvas推箱子原型实现
  10. Windows Server 2008 R2 安全加固
  11. Apollo灰度发布
  12. 暴力推荐2:硬盘分区丢失之DiskGenius
  13. Android PackageInstaller:安装应用的应用,从三流Android外包到秒杀阿里P7
  14. 整数转罗马数字 + 逆向(Python)
  15. wps怎么插入目录,快速插入目录的操作步骤
  16. 关于运行微信小程序报错 [微信小程序开发者工具] Error: read EBADF
  17. chromium代码结构
  18. 微信公众号支付|微信H5支付|微信扫码支付|小程序支付|APP微信支付解决方案总结
  19. 苹果:第三方安装软件或导致严重隐私、安全风险
  20. 【独立站运营】营销邮件被判定为垃圾邮件?四个方法教你避开

热门文章

  1. Android视频应用去广告学习实践
  2. [Linux] 假死分析
  3. 墨尔本大学计算机研究生专业学费,墨尔本大学国际研究生专业学费
  4. 杰理之在线 EQ 调试【篇】
  5. AT指令EGMR-修改设备的IMEI号码
  6. 人机工程学座椅设计_人机工程学座椅设计.ppt
  7. 专业实践记录IIII: 端到端跨语言音色迁移语音合成论文 - 三步走
  8. 进DNF选频道时为什么会蓝屏啊
  9. C++ Python 链表逆序 反转链表
  10. PKPM 多层及高层结构CAD软件的高级应用