简称EF,是微软以ADO.NET为基础所发展出来的对象关系对应(ORM)解决方案。

EF就是用来处理数据的,与数据库打交道。但是底层还是用到了ADO.NET的那一套东西。

为什么叫对象关系对应解决方案?

对象关系对应又叫ORM。O——>object实体类,R——>Relations 关系,M——>Mapping映射。ORM就是表和实体类之间的映射,可以把一个表映射成实体类,表中的字段对应实体中的属性,反过来亦可以。ORM指的是面向对象的对象模型和关系型数据库的数据结构之间的转换。

EF帮我们完成数据处理,只不过在数据处理的时候不在涉及到表,只涉及到表对应的实体模型。无论是WebForm、Winform只要涉及到数据处理都可以用EF。

EF提供了非常强大的模型设计器。可以在里边设计实体模型。可以在增加实体类型。真正的实体类在Model1.tt下边,只不过我们可以通过模型设计器来改。还可以增加两个模型之间的关联(一对多还是多对多)。

Model1.tt中的代码就是微软T4代码生成工具。执行文件中的代码生成C#代码。Model1.edmx中有一个Model1.Context.cs文件,里面有一个以数据库名称为前缀的类,继承DBContext。

    用xml编辑器打开模型设计器,可以开到是一个xml文件,里面包含SCDL、SSDL、CMS:
    SCDL:概念模型,就是实体,实体中的属性,以及包括属性的声明
    SSDL:存储模型,就是表,表中的字段,以及字段的类型
    CSM:表示实体中的属性与表中字段的对应
    
    SaveChange:读取XML文件,找到实体中的属性,和数据库中字段的对应关系,给属性赋值,会自动插入到表中字段中。
    当执行SaveChanges()方法后,我们可以通过SQL数据库监测工具检测到会生成一个存储过程,存储过程中生成的SQL语句是标准的SQL语句,不用担心SQL注入的问题。SaveChanges返回int类型表示受影响的行数。
    DBContext:应用程序把数据构建好了交给DBContext,DBContext会读取XML映射,找到实体和关系之间的映射关系,然后生成SQL语句,交给数据库执行。

DBContext帮我们获取Web.Config中的链接字符串,根据获取的链接字符串去链接数据库

在插入操作过程中,EF中拿到刚插入数据的主键ID值: 执行完插入以后,会自动的把插入的主键ID重新赋值给ID属性。

 
 
 
 
    

实体框架—Entity Framework的更多相关文章

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

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

  2. 实体框架(Entity Framework)快速入门--实例篇

    在上一篇 <实体框架(Entity Framework)快速入门> 中我们简单了解的EF的定义和大体的情况,我们通过一步一步的做一个简单的实际例子来让大家对EF使用有个简单印象,看操作步骤 ...

  3. 实体框架(Entity Framework)快速入门

    实体 框架 (Entity Framework )简介 实体框架Entity Framework 是 ADO .NET 中的一组支持 开发 面向数据的软件应用程序的技术.是微软的一个ORM框架. OR ...

  4. ADO.NET实体框架Entity Framework模型-基于元数据解析

           上一篇简单介绍了EF的XML模型结构,在基于xml解析一文中,主要使用xml查询技术Xpath,XQuery来得到实体模型中相应信息的,由于这种方式在数据库庞大,表关系复杂的情况下,有诸 ...

  5. 实体框架Entity Framework 4.1快速入门

    介 绍 在旧的Entity 框架中,开发者可以从已存在的数据库中产生业务实体的模型,这种开发方法被称为数据库驱动的开发方法.而在4.1的Entity Framework中,支开发者先创建实体业务类,然 ...

  6. ADO.NET实体框架Entity Framework模型-基于XML解析

            最近由于项目需求,需要对实体框架内表之间的关系进行处理,主要功能要求是通过一表名,返回其在实体框架内的所有关系表.主外键及每个字段的属性.先简单描述我解决这个问题从开始到最后的分析实现 ...

  7. ORM框架Entity Framework

    博客园在推广ORM方面的确做了很大的贡献,很多的程序员开始使用ORM,不用写SQL的喜悦让他们激动不已,可是好景不长,他们很快发现众多的烦恼一个接一个的出现了. 很遗憾,我并不打算在这篇文章中解决这些 ...

  8. 实体框架(Entity Framework)简介

    实体框架(Entity Framework)简介 简称EF,与ADO.NET关系 ADO.NET Entity Framework 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R ...

  9. 实体框架(Entity Framework)

    实体框架(Entity Framework) 实体框架(Entity Framework)简介 ADO.NET Entity Framework 是微软以 ADO.NET 为基础所发展出来的对象关系对 ...

随机推荐

  1. 我的博客即将搬运同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=i5j7gwrxj9x5

    我的博客即将搬运同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=i5j7gwrxj9x5

  2. shell符号解释

    #符号详解 () 在子shell中运行 (a=1);echo $a,结果是空,因为a=1不是在当前shell中运行的(a=1);(echo $a)也是空的 小技巧:(cd $path, do some ...

  3. unbuntu系统( PC机 )中安装360wifi步骤

    少说废话,每一步都经过验证: 1.  首先查看一下当前使用的linux版本: gxjun@gxjun:~$ uname -r 4.8.0-59-generic 2. 将360wifi插入PC的USB中 ...

  4. 自建证书配置HTTPS服务器

    1.写这篇博客的初衷是因为最近iOS9出来了,苹果官方默认要求使用HTTPS,所以自己想整一个HTTPS服务器,也想好好了解一下HTTPS通信,也知道了HTTPS其实就是在HTTP的基础上加上了SSL ...

  5. 使用phpstorm进行PHP断点调试

    PHP开发中都说一个会偷懒的程序员才是合格的程序员,在PHP开发中调试是必须要有的,可能要重复很多次的去调试,一次又一次,今天我们就来教教大家如何偷懒的,那么就来讲讲使用phpstorm进行偷懒吧! ...

  6. LeeCX - 开源后台管理系统简单介绍

    我们在github上开源了一个后台管理系统,使用了前端css框架并且简单的封装了一下,技术的将会不间断更新,详细可以点击原文链接.具体介绍如下: LeeCX 开源后台管理系统,前端基于bootstra ...

  7. atitit r9 doc on home ntpc .docx

    卷 p2soft 的文件夹 PATH 列表 卷序列号为 9AD0-D3C8 D:. │  Aittit pato 面对拒绝  的回应.docx │  Atitit  中国明星数量统计 attilax. ...

  8. Atitit 数据库排除某一列 字段 显示

    Atitit  数据库排除某一列 字段  显示 GROUP_CONCAT  行列转换 mysql利用group_concat()合并多行数据到一行_Mysql_脚本之家 sELECT GROUP_CO ...

  9. SATA主机协议的FPGA实现之物理层设计

    SATA主机协议的FPGA实现之物理层设计   接上一篇文章,这里讲解SATA主机协议的物理层的实现过程. 下图是标准SATA协议文档中给出的物理层结构.可以看到它包含控制模块.时钟数据提取单元.同步 ...

  10. spring事务的传播机制新解

    以下是事物的传播机制: @Transactional(propagation=Propagation.REQUIRED)如果有事务, 那么加入事务, 没有的话新建一个(默认情况下)@Transacti ...