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

article/2025/11/8 1:44:31

一、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://chatgpt.dhexx.cn/article/bxLrrX5C.shtml

相关文章

【EF框架】聊一聊EF框架

前言 EF框架的全称EntityFramework ,Entity Framework是ADO.NET 中的一套支持开发面向数据的软件应用程序的技术,是微软的一个ORM框架。 叙述 ORM ORM是一种将数据从域对象存储到关系数据库(如MS SQL Server)的工具,以自动化的方…

给EF框架自动生成实体类修改名字

给EF框架自动生成实体类名字一般以T_ 开头,不符合我们给实体类起的名字这个时候如何进行修改呢? 右击2 选择属性 将属性中的实体集名称和名称改成自己想要的样子就可以啦~ 然后点击重新生成解决方案,我们就能修改自动生成的.cs的实体类名…

EF框架搭建

这是在vs2019版本社区版的创建流程; 右键项目添加新建项->选择数据, 这里选择第一个ADO.NET实体数据模型,并重命名,我这里命名为数据库名 基本上用的都是第一个,通过数据库生成实体类。 因为当前项目没有连接过&am…

EF框架如何搭建

EF出现背景 1、以前程序设计师一定要为了连接与访问数据库而去学习 SQL 指令,因此在信息业中有很多人都在研究如何将程序设计模型和数据库集成在一起,对象关系对应 (Object-Relational Mapping) 的技术就是由此而生。 2、像Hibernate或NHibernate都是这…

EF框架-SQL语句 查询与修改

机房合作当中使用到了框架首先有很多的不同之处&#xff0c;大大方便的编程的时间。 首先在查询与修改这两个点出发。 查询 这是使用SQL语句进行的查询&#xff0c;查询到的是多条信息 public List<CancelCardModel> SelectCancelRecord(string iD){using (InternetBa…

EF框架简介

EF 全称是 EntityFramework 。 Entity Framework是ADO.NET 中的一套支持开发面向数据的软件应用程序的技术,是微软的一个ORM框架。   ORM框架&#xff08;Object Relational Mapping&#xff09; 翻译过来就是对象关系映射。 二、EF实体框架整体架构&#xff1a; 架构组件&…

NET EF框架

EF 框架是微软的.NET中ORM&#xff08;对象关系映射&#xff09;框架。 在没有EF框架之前&#xff0c;我们是直接与ADO.Net 进行交互来访问数据库&#xff0c;在SqlHelper 里面面通过设置connection ,command ,dataset,datareader等来与数据库交互&#xff0c;这样的话使得我们…

EF框架的优点是什么?

Entity Framework 应用程序有以下优点&#xff1a; 1、应用程序可以通过更加以应用程序为中心的概念性模型(包括具有继承性、复杂成员和关系的类型)来工作。 2、应用程序不再对特定的数据引擎或存储架构具有硬编码依赖性。 3、可以在不更改应用程序代码的情况下更改概念性模…

EF框架,认识一下!

What&#xff1f; EF的全称是Entity Framework&#xff0c;也叫实体框架。是微软以ADO.Net为基础开发出来的对象关系映射&#xff08;ORM&#xff09;解决方案&#xff0c;它解决了对象持久化问题&#xff0c;将程序员从编写麻烦的SQL语句当中解放出来。就是用操作对象的方式来…

EF框架学习分享一

一、什么是EF框架和ORM框架 &#xff1f; EF 全称是 EntityFramework 。Entity Framework是ADO.NET 中的一套支持开发面向数据的软件应用程序的技术,是微软的一个ORM框架。 ORM框架&#xff08;Object Relational Mapping&#xff09; 翻译过来就是对象关系映射。 二、EF实体框…

EF框架

EF框架&#xff0c;全称Entity Framework&#xff0c;即实体框架 一、EF简介&#xff1a; 它微软提供的一种ORM工具&#xff0c;支持面向数据的软件应用程序的技术。ORM让开发人员节省数据库访问的代码时间&#xff0c;将更多的时间放到业务逻辑层代码上。EF提供变更跟踪、唯…

微信小程序开发——上传图片

功能描述 1.拍摄或从手机相册中选择图片上传。 2.chooseImage(e) 中的index用于判断是新增图片还是替换图片。 3.delImage(e) 删除当前index索引下的数据。 wx.chooseMedia(Object object) 属性类型默认值必填说明countnumber9否最多可以选择的文件个数mediaTypeArray.<…

微信小程序图片下边加文字组合

图片下边加文字组合 简介 我们在开发程序的时候&#xff0c;很大情况会用到图片下边加文字的组合&#xff0c;因为好看又实用&#xff0c;所以在此记录一下给大家。 效果图 代码 wxml <view class"view_saoyisao"><image class"image_saoyisao&qu…

微信小程序剪切图片的功能

全平台&#xff08;Vue、React、微信小程序&#xff09;任意角度旋转 图片裁剪组件 | 微信开放社区 Simple-Crop/USAGE-wechat.md at master newbieYoung/Simple-Crop GitHub 首选下载下来wechat这个文件夹。放在小程序的components里面 把它放做一个组件来用啦.我把这个文件…

微信小程序 图片显示不出来的问题 100%管用

相信大多数微信小程序的开发者都会遇到的一个问题就是图片在模拟器上能显示 跑到真机上就不行&#xff0c;而且ios能显示安卓却显示不了的问题&#xff0c;这个问题也是困扰了我很久&#xff0c;最终想到了解决方案。 大多数情况下 都是后端返回一个url地址然后我们再拿基准…

微信小程序 背景图片设置

微信小程序设置背景图片时&#xff0c;有两种方法&#xff1a; 第一&#xff1a;直接在.wxss中中使用 “background-image:url()” 设置背景图片&#xff0c;但是这种加载背景图片的方法存在一个问题&#xff0c;就是所加载的图片只能是网络图片或base64图片&#xff0c;是不可…

微信小程序图片的垂直和水平居中,line-height无效,使用flew布局

微信小程序中&#xff0c;图片的完全居中显示&#xff0c;line-height并不能发挥效果&#xff0c; line-height可以时内部文字垂直居中显示&#xff0c;但是对于图片并未发挥效果 如图&#xff1a; 不过&#xff0c;水平居中显示&#xff0c;可以使用 text-align:center 解决方…

微信小程序 图片处理的几个样式

每天记录一点对自己来说的新内容。 1、外层包裹的view标签显示边框 示例&#xff1a; 样式&#xff1a; .viewborder {border: 3px solid #f1bb69;border-radius: 10rpx;padding: 10rpx;margin: 10px; } 2、图片边框阴影效果 示例&#xff1a; 样式&#xff1a; .icon {wi…

解决微信小程序图片上传点击无反应问题

解决微信小程序图片上传点击无反应问题 背景原因 背景 在微信小程序webView中使用mand-mobile或vant图片上传组件点击无反应&#xff0c;无法进行图片上传。 原因 微信小程序WebView中不支持input标签multiple属性&#xff0c;该属性是支持多文件上传属性&#xff0c;解决此…

微信小程序图片上传一直loading中,上传没反应

问题&#xff1a; 前端使用小程序自带的上传api,即wx.chooseImage和wx.uploadFile&#xff1b;直接上传到公司后端服务器里&#xff08;注不是上传到阿里云&#xff09;&#xff0c;问题是wx.chooseImage成功了&#xff0c;但是wx.uploadFile就是没有成功。 解决&#xff1a;…