写在前面


在使用.net mvc 开发的时候。为了高效的开发,我们常常会搭配ORM框架使用。

而Entity Framework正是微软开发的一种ORM框架。一般情况下,我们很少用全称,

而是直接用EF。因为都是微软的产品,所以通常它和MVC是黄金搭档。

什么是Entity Framework


全称ADO.NET Entity Framework,简称为EF。优点是能高效的开发,缺点就是会损害性能。

所以,如果业务太过与庞大,对性能要求很高的。不建议使用EF进行开发。

可以使用轻量级的ORM框架进行开发。

EF的优缺点


1.优点

【1】.极大地提高开发效率。写代码效率非常高,自动化程序高。
【2】.支持多种数据库(mysql,oracle,sqlserver)。
【3】.强劲的映射,可以支持可视化操作。
【4】.提供Visual Studio 集成工具,进行可视化操作。

2.缺点

【1】.EF性能不好,性能有损耗。在复杂查询的时候生成的SQL脚本效率不是很高。
【2】.数据库端性能损耗是一样的,但是在将对象状态转换成SQL语句时,会损失性能。

如何理解ORM


  • 广义上,它是面向对象的对象模型和关系型数据库的数据结构之间的相互转换。

  • 狭义上,它是基于关系型数据库的数据存储,实现一个虚拟的面向对象的数据访问接口。在持久化一个OO对象不需要了解任何关系型数据库存储数据的实现细节。

  • 在关系型数据库的世界里没有继承关系。

  • 在面向对象的世界里,我们使用单向关联。 然鹅,在关系型数据库的世界里,我们使用外键双向关联。

  • ORM是对象世界和关系世界的一座桥梁,通过映射关系,简化了大量操作数据库的代码。

EF执行的原理


EF执行的原理是 反射和特性

【1】首先,EDM利用特性来标识实体映射到具体数据库中的TableName 属性对应的具体表的ColumnName,还有主键,外键,默认值等,都是特性来标识的。

【2】然后通过反射技术,从EF中edm元数据库中获取数据库表的结构的描述

【3】再根据增删改查操作方法,就可以产生对应的SQL语句。

【4】然后发送个ADO.NET,

【5】最终由ADO.NET 负责从数据库中读取数据,返回给EF。

Entity Framework 学习系列(1) - 认识理解Entity Framework的更多相关文章

  1. Entity Framework 学习系列(3) - MySql Code First 开发方式+数据迁移

    目录 # 写在前面 一.开发环境 二.创建项目 三.安装程序包 四.创建模型 五.连接字符串 六.编辑程序 七.数据迁移 写在最后 # 写在前面 这几天,一直都在学习Entity Framework ...

  2. Entity Framework 学习系列(4) - EF 增删改

    目录 写在前面 一.开发环境 二.创建项目 三.新增 1.单表新增 2.批量新增 3.多表新增 四.编辑 1.先查询,后编辑 2.创建实体,后编辑 五.删除 写在前面 在上一小节中,学习了如何 通过C ...

  3. Entity Framework 学习系列(2) - MySql Database First 开发方式

    目录 写在前面 环境 下载MySQL连接工具 创建Databse First 1.创建控制台 2.创建数据库 3.安装 MySQL.Data 和MySQL.Data.Entity 3.在项目中添加数据 ...

  4. Entity Framework 学习系列(5) - EF 相关查询

    目录 写在前面 一.使用Stopwatch 查询执行效率 二.简单查询 1.Linq写法: 2.Lambda表达式写法: 三.条件查询 1.Linq 写法 2.lambda 写法 四.聚合函数 1.L ...

  5. Entity Framework Core系列之什么是Entity Framework Core

    前言 Entity Framework Core (EF Core)是微软推荐的基于.NET Core framework的应用程序数据访问技术.它是轻量级,可扩展并且支持跨平台开发.EF Core是 ...

  6. Entity Framework 学习

    Entity Framework 学习初级篇1--EF基本概况 Entity Framework 学习初级篇2--ObjectContext.ObjectQuery.ObjectStateEntry. ...

  7. Entity Framework 学习笔记(2)

    上期回顾:Entity Framework 学习笔记(1) Entity Framework最主要的东西,就是自己创建的.继承于DbContext的类: /// <summary> /// ...

  8. MVC5 Entity Framework学习

    MVC5 Entity Framework学习(1):创建Entity Framework数据模型 MVC5 Entity Framework学习(2):实现基本的CRUD功能 MVC5 Entity ...

  9. Entity Framework Code First学习系列目录

    Entity Framework Code First学习系列说明:开发环境为Visual Studio 2010 + Entity Framework 5.0+MS SQL Server 2012, ...

随机推荐

  1. 201871010131-张兴盼《面向对象程序设计(java)》第二周学习总结

    项目 内容 <面向对象程序设计(java)> https://home.cnblogs.com/u/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.c ...

  2. CSP 201812-2 小明放学

    问题描述: 解题思路: 由于数据的量较大,需要使用long long来存储结果,否则会爆掉结果只能得到一部分的分 可以类比时钟,将红绿灯的变换当成时钟的运转,这样用模运算来断定红绿灯在到达时处于什么颜 ...

  3. 资源管理(Resource Management),知识点

    资料 网址 资源管理(Resource Management)服务 包含一系列支持企业IT治理的资源管理产品集合,主要包括资源组和资源目录.通过资源管理服务,您可以按照业务需要搭建合适的资源组织关系, ...

  4. arguments简单函数 求整数递加和

    function add(n){if(n == 1) return 1;else return n + arguments.callee(n-1);alert(arguments.callee(1)) ...

  5. USACO Chocolate Giving

    洛谷 P2984 [USACO10FEB]给巧克力Chocolate Giving 洛谷传送门 JDOJ 2680: USACO 2010 Feb Silver 2.Chocolate Giving ...

  6. svg形状相关的学习(二)

    _ 阅读目录 一:线段 二:笔画特性 1. stroke-width 2. stroke-opacity 3. stroke-dasharray 属性 三:常见的形状 1. 矩形 2. 圆角矩形 3. ...

  7. 分享:手把手教你如何免费且光荣地使用正版IntelliJ IDEA

    https://mp.weixin.qq.com/s/6nRYmn6gAWFLg3mUIN_ojg TIPS 近日在个人技术讨论QQ群里,谈论到IDEA的那些事儿.有童鞋居然在某电商网站花钱买激活码. ...

  8. three.js 添加三维坐标系

    //显示三维坐标系 ); scene.add(axis);

  9. Spring Boot 知识笔记(servlet、监听器、拦截器)

    一.通过注解自定义servlet package net.Eleven.demo.servlet; import javax.servlet.ServletException; import java ...

  10. 使用socket.io实现简单的聊天功能

    Socket.io实际上是WebSocket的父集,Socket.io封装了WebSocket和轮询等方法 首先得在你的项目中安装socket.io $ npm install socket.io 服 ...