C#系列-Entity Framework 架构(18)

news/2025/2/28 5:06:46/

下图展示了EF的整体架构。现在让我们逐个地看看架构的各个组件:

EF组件图

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

Conceptual Model(概念模型): 概念模型包含模型类及他们之间的关系。 这将独立于您的数据库表设计。

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

Mapping(映射): 映射包含了如何将概念模型映射到存储模型的信息。

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

Entity SQL: Entity SQL是另外一种类似于LINQ to Entities 的查询语言。但是,它相比于LINQ to Entities 有一定难度,开发人员需要单独学习。

Object Service: Object service是一个访问数据库中数据且将数据返回的主入口点。Oject Service负责实例化,这是将从Entity Client Data Provider 返回的数据(下一层)转换为一个实体对象结构的过程。

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

ADO.Net Data Provider:这一层使用标准的ADO.Net与数据库通信。


http://www.ppmy.cn/news/1354692.html

相关文章

使用消息中间件实现系统间的异步通信和解耦

​​​​​​​目录 引言 一. 选择合适的消息中间件 二. 定义消息格式和通信协议 1. 定义消息格式 消息头 消息体 2. 定义通信协议 发送消息 接收消息 消息处理 3. 示例代码 定义消息格式 发送消息 接收消息 三、发布-订阅模式 1. 定义发布-订阅模式 2. 示例代…

Python一级考试笔记

Python一级考试笔记【源源老师】 前置知识:(了解即可) Python常见的几种编程环境:IDLE(自带)、Visual Studio Code、Jupyter、pyCharm; python版本:python3 和 python2(…

if中有return;,那if之后的语句还执行吗

好久没看代码了,这里的语句有点迷糊看不懂。 某方法中使用if作判断,执行语句块最后一句是“return;”,如果执行该语句,if后面的语句还会执行吗? 比如下面这个例子,if为true的情况下,控制台会打…

数据结构之时空复杂度

一、前言 1)什么是数据结构 数据结构(Data Structure)是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的 集合。 2)什么是算法 算法(Algorithm):就是定义良好的计算过程,他取一个或一组的值为输入&am…

解锁Spring Boot中的设计模式—03.委派模式:探索【委派模式】的奥秘与应用实践!

委派模式 文章目录 委派模式1.简述**应用场景****优缺点****业务场景示例** 2.类图3.具体实现3.1.自定义注解3.2.定义抽象委派接口3.3.定义具体执行者3.4.定义委派者(统一管理委派任务)3.5.定义委派者管理类 4.测试4.1.controller层4.2.测试不同场景4.2.1.测试生产部门计算费用…

C++中赋值运算符重载

一、赋值运算符重载概念 赋值运算符重载和拷贝构造函数一样,都是C中6个默认成员函数之一。但是拷贝构造函数是用已存在对象去创建一个新对象,而赋值运算符重载是两个已存在的对象,对象1赋值给对象2。 当我们未显示定义赋值运算符重载时&…

springboot745简历系统

springboot745简历系统 获取源码——》公主号:计算机专业毕设大全

Linux | Ubuntu通过USB访问Redmi K40存储出现xxx was not providedby any .service files错误

问题描述 通过USB Type-C数据线将Redmi K40手机(查证发现其他Redmi系手机也存在如此问题)连接至台式机Ubuntu 20.04后,手机切换至访问存储模式,Ubuntu上可以访问手机存储,并正常进行文件传输。标题所述问题的诱发原因…