EF框架学习分享一

article/2025/11/8 7:01:46

一、什么是EF框架ORM框架 ?

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

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

 

 

二、EF实体框架整体架构:

 

架构组件:

EDM(实体数据模型): EDM由三个主要部分组成 - 概念模型,映射和存储模型。

Conceptual Model:概念模型包含模型类及其关系。这将独立于您的数据库表设计。

Storage Model:存储模型是包括表,视图,存储过程及其关系和密钥的数据库设计模型。

Mapping:映射由有关概念模型如何映射到存储模型的信息组成。

LINQ to Entities: LINQ to Entities是一种用于针对对象模型编写查询的查询语言。它返回在概念模型中定义的实体。你可以在这里使用你的LINQ技能。

Entity SQL:实体SQL是另一种查询语言(仅适用于EF 6),就像LINQ to Entities一样。然而,这比L2E稍微难一些,开发者需要单独学习。

ObjectServices:对象服务是访问数据库中的数据并将其返回的主要入口点。对象服务负责实现,这是将从实体客户端数据提供者(下一层)返回的数据转换为实体对象结构的过程。

Entity Client Data Provider:此层的主要职责是将LINQ-to-Entities或实体SQL查询转换为底层数据库可以理解的SQL查询。它与ADO.Net数据提供者通信,而ADO.Net数据提供者又从数据库发送或检索数据。

ADO.Net Data Provider:该层使用标准的ADO.Net与数据库进行通信。

 

三 、EF 的优势(与 ADO.NET 的对比)

https://www.cnblogs.com/best/p/7714500.html (ADO详解链接)

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


http://chatgpt.dhexx.cn/article/PcFYuOxq.shtml

相关文章

EF框架

EF框架,全称Entity Framework,即实体框架 一、EF简介: 它微软提供的一种ORM工具,支持面向数据的软件应用程序的技术。ORM让开发人员节省数据库访问的代码时间,将更多的时间放到业务逻辑层代码上。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;…

uniapp开发微信小程序图片拉伸问题

今天开发微信小程序的时候&#xff0c;发现我的图片被拉伸了 如何解决图片拉伸的问题 在uniapp中的image中有一个mode属性&#xff0c;去设置就好了 注意 src 仅支持相对路径、绝对路径&#xff0c;支持 base64 码 mode的属性值有很多 我简单的给大家列出来几种 scaleToFi…

微信小程序图片上传uploadfile失败

场景一&#xff1a;开发者工具可上传&#xff0c;手机端不可以 问题定位&#xff1a;开发者工具返回http://&#xff0c;手机端返回wxfile:// 解决方式&#xff1a;由后端写上传图片的接口 场景二&#xff1a;调试模式可以上传&#xff0c;非调试模式不可以 问题定位&#xff…

解决微信小程序图片过大上传失败问题

方法一 将图片传入网络相册&#xff08;如QQ空间&#xff09;&#xff0c;右键获取图片url 缺点&#xff1a;有可能会降低图片清晰度 wxml : <image src"url" mode"aspectFit"></image> 方法二 使用微信云服务 点击微信云服务 点击存储&am…

微信小程序图片底部留白的问题

先说下&#xff0c;我前端经验不丰富。找了几个网上的例子&#xff0c;根据例子&#xff0c;实验得到解决方案如下。 1、将包裹的view增加display属性。值&#xff1a;display。 2、将image设置为垂直对齐模式。vertical-align:top&#xff0c;因为图片是要占满整个水平宽度的…

简单实用,微信小程序图片预览功能实现

前言 随着微信小程序在手机上的普及&#xff0c;大家对其实用性也越来越追求。其中&#xff0c;图片预览功能的实现&#xff0c;更是备受青睐&#xff0c;它能够更直观的看到图片原本的细节&#xff0c;是非常实用的小功能。本文将针对微信小程序实现图片预览作为主题&#xff…

微信小程序 图片显示不完全

<image :src"pic" mode"widthFix"></image> https://developers.weixin.qq.com/miniprogram/dev/component/image.htmlhttps://developers.weixin.qq.com/miniprogram/dev/component/image.html

微信小程序图片宽高自适应

微信小程序<image>有默认的宽高width:320rpx;height:240rpx;只设置width&#xff1a;100%是无效的&#xff0c;即使写了height&#xff1a;100%&#xff0c;依然无效 只要在<image>标签添加mode"widthFix"属性&#xff0c;就可以做到高度自适应&#xf…

微信小程序图片显示模式

&#x1f40b;拿破仑曾经说过&#xff1a;“不想当将军的士兵绝不是一个好的士兵”&#xff0c;就好比如不想当架构师的程序员不是一个好的程序员。&#x1f339; &#x1f3c6;所以我的梦想是做一名技术顶尖的架构师&#xff0c;虽然遥不可及&#xff0c;但并不是不可能实现&a…

微信小程序的图片上传及图片预览功能

本文为大家分享微信小程序的图片上传及图片预览功能&#xff0c;如下图所示&#xff1a; 需求分析&#xff1a; 图片上传可以从本地图库选择也可调用相机进行拍照上传 上传完成之后图片可以进行删除、预览等功能 图片上传至服务器进行后台调用 代码实现&#xff1a; wxml文…

微信小程序中,图片的位置设置

在编写小程序的时候&#xff0c;难免会涉及到图片的位置放置。 以及具体的wxss格式的设置&#xff0c;在这里想进行一个具体格式的讲解。 第一种&#xff1a;图片不换行&#xff0c;多个图片排列在同一行 具体样例如下图&#xff1a;黄色荧光笔所绘&#xff1a; 要实现该操作…