NET EF框架

NET EF框架EF 框架是微软的 NET 中 ORM 对象关系映射 框架 在没有 EF 框架之前 我们是直接与 ADO Net 进行交互来访问数据库 在 SqlHelper 里面面通过设置 connection command dataset datareader 等来与数据库交互 这样的话使得我们开发人员把很多精力放在了管理数据访问的 ADO NET 代码上 但是在 EF 框架中把这块代码进行了封装 开发人员直接通过实体

EF 框架是微软的.NET中ORM(对象关系映射)框架。

那为什么要用ORM框架呢?

EF为我们现有的数据库创建数据访问类,以便我们可以直接使用这些类与数据库交互,而不是直接与ADO.Net交互。

EF三种模式

  • DataBase First
  • Model First
  • CodeFirst

  DataBase First传统的表驱动方式创建EDM,然后通过EDM生成模型和数据层代码。除生成实体模型和自跟踪实现模型,还支持生成轻型DbContext。

  Model First先创建EDM模型,再生成DDL数据库脚本和模型和数据层代码。除生成实体模型和自跟踪实现模型,支持生成轻型DbContext。

  Code First手动创建POCO模型,数据层DbContext及映射关系,通过Database.SetInitializer生成数据库,这种方式较灵活,但是代码工作较多。

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 的第一个功能就是建立一个实体数据模型(EDM).EDM 在上面也提到过,主要包括概念模型,存储模型以及概念和存储之间的映射。EF使用此EDM执行CRUD操作。它使用EDM从LINQ查询构建SQL查询,构建INSERT,UPDATE和DELETE命令,将数据库结果转换为实体对象。

这里写图片描述

查询 
EF 使用EDM将LINQ-to-Entities查询转换为关系数据库的SQL查询,并将结果转换回实体对象。 
这里写图片描述

保存 
当调用SaveChanges()方法时,EF根据实体的状态推断INSERT,UPDATE和DELETE命令。ChangeTrack跟踪每个实体的状态,以及何时执行任何操作。 
这里写图片描述

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/207739.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午1:12
下一篇 2026年3月19日 下午1:12


相关推荐

  • 关于WebViewJavascriptBridge

    关于WebViewJavascriptBridge关于 WebViewJavas 描述 iOS 与 js 交互的几种方式 1 服务器主动促发 2 客户端主动促发

    2026年3月18日
    1
  • 工位已备好,来跟我“养龙虾”

    工位已备好,来跟我“养龙虾”

    2026年3月13日
    3
  • java watchdog_Watchdog机制概述

    java watchdog_Watchdog机制概述1 Watchdog 初始 Watchdog 的中文的 看门狗 有保护的意思 最早引入 Watchdog 是在单片机系统中 由于单片机的工作环境容易受到外界磁场的干扰 导致程序 跑飞 造成整个系统无法正常工作 因此 引入了一个 看门狗 对单片机的运行状态进行实时监测 针对运行故障做一些保护处理 譬如让系统重启 这种 Watchdog 属于硬件层面 必须有硬件电路的支持 Linux 也引入了 Watchdog

    2026年3月17日
    2
  • DeepSeek-R1-Distill-Qwen-1.5B完整教程:环境配置、模型加载、测试验证一站式搞定

    DeepSeek-R1-Distill-Qwen-1.5B完整教程:环境配置、模型加载、测试验证一站式搞定

    2026年3月14日
    3
  • php面试题目100及最佳答案_社区工作者面试题目

    php面试题目100及最佳答案_社区工作者面试题目Php面试100题汇总1,Http和Https的区别第一:http是超文本传输协议,信息是明文传输,https是具有安全性的ssl加密传输协议第二:http和https使用的是完全不同的连接方式,端口也不一样,前者80或者443第三:http连接很简单,是无状态的。https协议是由ssl+http协议构建的可进行加密传输,身份认证的网络协议。2.什么方法来加快页面的加载速度1,用到服务器资源

    2022年8月29日
    8
  • tez安装

    tez安装tez 简介 tez 通过允许像 ApacheHive 和 ApachePig 这样的项目运行复杂的任务 Tez 可以用来处理数据 这在更早地时候采用了多个 MRjob 现在可以在一个 Tez 的执行工作 官网 http tez apache org 特性 1 表达数据流定义的 api2 灵活的 Input Processor Output 运行时模型 3 数据类型不确定 4 简化的部署 5 在 M

    2026年3月17日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号