当前位置: 首页 > news >正文

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

http://www.lryc.cn/news/20454.html

相关文章:

  • 注解原理剖析与实战
  • 《STL源码剖析》理解之将类成员函数和for_each等算法结合
  • 如何构建应用标准化体系
  • 【RabbitMQ笔记03】消息队列RabbitMQ七种模式之WorkQueues工作队列模式
  • 认识html
  • 在外包公司熬了 3 年终于进了字节,竭尽全力....
  • 绝对让你明明白白,脚把脚带你盯着 I2C 时序图将 I2C 程序给扣出来(基于STM32的模拟I2C)
  • 2023年全国最新工会考试精选真题及答案5
  • 一文2000字手把手教你自动化测试Selenium+pytest+数据驱动
  • windows安装Ubuntu子系统以及图形化界面记录
  • 通俗易懂,十分钟读懂DES,详解DES加密算法原理,DES攻击手段以及3DES原理。Python DES实现源码
  • 为多态基类声明virtual析构函数
  • 啊哈 算法读书笔记 第 2 章 栈、队列、链表
  • Git ---- IDEA 集成 Git
  • 【LeetCode 704】【Go】二分查找
  • 【代码随想录训练营】【Day23】第六章|二叉树|669. 修剪二叉搜索树 |108.将有序数组转换为二叉搜索树|538.把二叉搜索树转换为累加树
  • CV——day78 读论文:通过静态背景构建扩展低通道路边雷达的探测距离(目标是规避风险)
  • 【编程入门】应用市场(go语言版)
  • Linux(openEuler)没有界面连接互联网方法
  • 第一天 软考中级--嵌入式系统设计师考试复习教程开始了
  • 分享 10 个高频 Python 面试题
  • ThreadLocal原理、结构、源码解析
  • 分布式之PBFT算法
  • Linux 操作系统——查看/修改系统时区、时间、本地时间修改为UTC
  • CSS数据类型以及符号
  • LeetCode-54. 螺旋矩阵
  • 【Python入门第十八天】Python For 循环
  • Qt图片定时滚动播放器
  • 李宏毅2023春季机器学习课程
  • 计算机操作系统知识点汇总