实体框架(Entity Framework)快速入门
实体 框架 (Entity Framework )简介
实体框架Entity Framework 是 ADO .NET 中的一组支持 开发 面向数据的软件应用程序的技术。是微软的一个ORM框架。
ORM知识补充:什么是O/R Mapping?
广义上,ORM指的是 面向对象 的对象模型和关系型 数据库 的数据结构之间的相互转换。
狭义上,ORM可以被认为是,基于关系型数据库的数据存储,实现一个虚拟的面向对象的数据访问接口。理想情况下,基于这样一个面向对象的接口,持久化一个OO对象应该不需要要了解任何关系型数据库存储数据的实现细节。
ORM三个字母分别代表如下图所示:
ORM IN EF
在EF中的实体数据模型(EDM)由以下三种模型和具有相应文件扩展名的映射文件进行定义。
- 概念架构定义语言文件 (.csdl) -- 定义概念模型。R
- 存储架构定义语言文件 (.ssdl) -- 定义存储模型(又称逻辑模型O)。
- 映射规范语言文件 (.msl) -- 定义存储模型与概念模型之间的映射M。
实体框架 使用这些基于 XML 的模型和映射文件将对概念模型中的实体和关系的创建、读取、更新和删除操作转换为数据源中的等效操作。EDM 甚至支持将概念模型中的实体映射到数据源中的 存储过程 。
如下图所示的EDMX的定义:
EF中操作数据库的网关
ObjectContext封装 .NET Framework 和数据库之间的连接。此类用作“创建”、“读取”、“更新”和“删除”操作的网关。
ObjectContext 类为主类,用于与作为对象(这些对象为 EDM 中定义的实体类型的实例)的数据进行 交互 。
它封装了EF 到数据库的连接,封装了表对应的实体的集合,所以我们所有的操作都应该是针对于ObjectContext下的实体集合,修改实体集合后,通过调用ObjectContext的SaveChange方法将对实体集合的操作映射回数据库。当然ObjectContext通过我们上面EDMX的定义,也就是表、实体的关系的xml定义,通过集合的变化,生成对应的 sql ,并调用Ado.Net来实现对数据库的操作。
如下图所示:
当然上面只是一个简单的图,更为专业点的图应该是这样,如下图所示:
通过上面的介绍我们就基本上认识到了Entity Freamwork的基本的使用情况,当然是很浅显的。希望对初学者有帮助!
转载于:https://www.cnblogs.com/zk-zhou/p/6667618.html
实体框架(Entity Framework)快速入门相关推荐
- C#代码生成工具:文本模板初体验 使用T4批量修改实体框架(Entity Framework)的类名...
转自:http://www.cnblogs.com/huangcong/archive/2011/07/20/1931107.html 在之前的文本模板(T4)初体验中我们已经知道了T4的用处,下面就 ...
- Entity Framework快速入门笔记第四篇—ModelFirst
前言:在上一篇博客中我们做了一个小的Demo,使用EF实现了对数据库的增删改查的操作,所谓学习,我们就要学会举一反三,所以好好学习一下上一篇的内容还是方便以后的扩展学习,这篇博客我们主要来研究一下Mo ...
- 【EF】Entity Framework快速入门
什么是Entity Framework 简单的说就是 不用你创建Model实体类,不用你编写sql语句,就能实现与数据库数据交互 在SSMS创建两个表,用于测试 也可以直接在EF中设计模型 使用VS2 ...
- CTK框架——CTK Widgets快速入门
CTK框架--CTK Widgets快速入门 天山老妖S关注0人评论27888人阅读2018-05-25 18:40:52 CTK框架--CTK Widgets快速入门 一.CTK Widgets模块 ...
- web框架:Iris快速入门
web框架:Iris快速入门 1 介绍及安装 介绍 Iris是一款用Go开发的web应用框架,被称为速度最快的Go后端开发框架. 官网地址:https://www.iris-go.com/ 中文教程地 ...
- 【转】Robot Framework 快速入门
目录 介绍 概述 安装 运行demo 介绍样例应用程序 测试用例 第一个测试用例 高级别测试用例 数据驱动测试用例 关键词keywords 内置关键词 库关键词 用户定义关键词 变量 定义变量 使用变 ...
- 高性能RPC框架—----------------------Dubbo一站式快速入门
https://blog.csdn.net/tangyang8941/article/details/88025412 一.Web应用架构的演变 随着互联网的发展,网站应用的规模不断扩大,W ...
- 爬虫框架:Scrapy 快速入门
文章目录 一.Scrapy简介 1.1 示例代码 1.2 示例代码的运行流程 二.安装Scrapy 2.1 Ubuntu下安装 2.2 Windows下安装 2.3 Mac OS下安装 三.Scrap ...
- el-admin框架简单解析-快速入门(前端部分)
目录 el-admin 简单了解 使用框架的四大步 el-admin前端部分解析 前端Vue目录结构 Layout 布局 mixins 混入模式 router 路由 store 状态管理 utils ...
最新文章
- 零基础怎么学UI设计
- 一个API调用27个NLP预训练模型:BERT、GPT-2全囊括,像导入NumPy一样容易
- 从各方面数据来看《猎场》为什么收官后热度依旧
- PLC項目任務單2---狀態轉移圖
- 手把手实现YOLOv3(一)
- VTK:绘制圆圈用法实战
- criscriter英语测试软件,iTEST大学英语测试与训练系统
- arduino 土壤温湿度传感器_【雕爷学编程】Arduino动手做(70)---土壤湿度传感器...
- SQL注入漏洞入门(操作实现)
- 读书笔记5.2——《让数字说话:审计,就这么简单》:孙含晖
- ES6之什么是箭头函数?
- 2022年最值得去的100家互联网大厂排名出来了
- 【C语言】大厂指针笔试题(1码+1图)详解——程序结果判断题
- VMware Workstations Pro 14 建立的虚拟机目录无法删除
- pytest 第一章 安装与执行用例
- 物联网之NB-IoT技术实践开发一(NB-IoT物联网行业解决方案)
- FreeServer
- UEFI0067:A PCIe link training failure is observed in PCIe Slot 3 and the link is disabled. (已解决)
- sql查询出两张表id不同的数据
- 现货交易系统常用交易模式介绍
热门文章
- 内推 | 旷视研究院深度学习实习生招聘(含内推邮箱)
- C++ Primer 第五版 第6章 6.7——函数指针习题答案
- 2018年度计算机视觉GtiHub top开源项目!
- 基于三维点云场景的语义及实例分割:RandLA-Net和3D-BoNet
- 数据结构期末复习之B树、B+树
- 用 LSTM 做时间序列预测的一个小例子
- Hybrid A*论文解析(2)
- 8能达到go速度吗 php_相同逻辑的php与golang代码效率对比,最好语言落谁家…
- react前端显示图片_在 React 中使用 SVG 图标组件
- 电平转换电路_【电路】从电平角度理解数字电路