实体 框架 (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)快速入门相关推荐

  1. C#代码生成工具:文本模板初体验 使用T4批量修改实体框架(Entity Framework)的类名...

    转自:http://www.cnblogs.com/huangcong/archive/2011/07/20/1931107.html 在之前的文本模板(T4)初体验中我们已经知道了T4的用处,下面就 ...

  2. Entity Framework快速入门笔记第四篇—ModelFirst

    前言:在上一篇博客中我们做了一个小的Demo,使用EF实现了对数据库的增删改查的操作,所谓学习,我们就要学会举一反三,所以好好学习一下上一篇的内容还是方便以后的扩展学习,这篇博客我们主要来研究一下Mo ...

  3. 【EF】Entity Framework快速入门

    什么是Entity Framework 简单的说就是 不用你创建Model实体类,不用你编写sql语句,就能实现与数据库数据交互 在SSMS创建两个表,用于测试 也可以直接在EF中设计模型 使用VS2 ...

  4. CTK框架——CTK Widgets快速入门

    CTK框架--CTK Widgets快速入门 天山老妖S关注0人评论27888人阅读2018-05-25 18:40:52 CTK框架--CTK Widgets快速入门 一.CTK Widgets模块 ...

  5. web框架:Iris快速入门

    web框架:Iris快速入门 1 介绍及安装 介绍 Iris是一款用Go开发的web应用框架,被称为速度最快的Go后端开发框架. 官网地址:https://www.iris-go.com/ 中文教程地 ...

  6. 【转】Robot Framework 快速入门

    目录 介绍 概述 安装 运行demo 介绍样例应用程序 测试用例 第一个测试用例 高级别测试用例 数据驱动测试用例 关键词keywords 内置关键词 库关键词 用户定义关键词 变量 定义变量 使用变 ...

  7. 高性能RPC框架—----------------------Dubbo一站式快速入门

    https://blog.csdn.net/tangyang8941/article/details/88025412 一.Web应用架构的演变 ​    随着互联网的发展,网站应用的规模不断扩大,W ...

  8. 爬虫框架:Scrapy 快速入门

    文章目录 一.Scrapy简介 1.1 示例代码 1.2 示例代码的运行流程 二.安装Scrapy 2.1 Ubuntu下安装 2.2 Windows下安装 2.3 Mac OS下安装 三.Scrap ...

  9. el-admin框架简单解析-快速入门(前端部分)

    目录 el-admin 简单了解 使用框架的四大步 el-admin前端部分解析 前端Vue目录结构 Layout 布局 mixins 混入模式 router 路由 store 状态管理 utils ...

最新文章

  1. 零基础怎么学UI设计
  2. 一个API调用27个NLP预训练模型:BERT、GPT-2全囊括,像导入NumPy一样容易
  3. 从各方面数据来看《猎场》为什么收官后热度依旧
  4. PLC項目任務單2---狀態轉移圖
  5. 手把手实现YOLOv3(一)
  6. VTK:绘制圆圈用法实战
  7. criscriter英语测试软件,iTEST大学英语测试与训练系统
  8. arduino 土壤温湿度传感器_【雕爷学编程】Arduino动手做(70)---土壤湿度传感器...
  9. SQL注入漏洞入门(操作实现)
  10. 读书笔记5.2——《让数字说话:审计,就这么简单》:孙含晖
  11. ES6之什么是箭头函数?
  12. 2022年最值得去的100家互联网大厂排名出来了
  13. 【C语言】大厂指针笔试题(1码+1图)详解——程序结果判断题
  14. VMware Workstations Pro 14 建立的虚拟机目录无法删除
  15. pytest 第一章 安装与执行用例
  16. 物联网之NB-IoT技术实践开发一(NB-IoT物联网行业解决方案)
  17. FreeServer
  18. UEFI0067:A PCIe link training failure is observed in PCIe Slot 3 and the link is disabled. (已解决)
  19. sql查询出两张表id不同的数据
  20. 现货交易系统常用交易模式介绍

热门文章

  1. 内推 | 旷视研究院深度学习实习生招聘(含内推邮箱)
  2. C++ Primer 第五版 第6章 6.7——函数指针习题答案
  3. 2018年度计算机视觉GtiHub top开源项目!
  4. 基于三维点云场景的语义及实例分割:RandLA-Net和3D-BoNet
  5. 数据结构期末复习之B树、B+树
  6. 用 LSTM 做时间序列预测的一个小例子
  7. Hybrid A*论文解析(2)
  8. 8能达到go速度吗 php_相同逻辑的php与golang代码效率对比,最好语言落谁家…
  9. react前端显示图片_在 React 中使用 SVG 图标组件
  10. 电平转换电路_【电路】从电平角度理解数字电路