简称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. iOS - 统计代码行数

    终端 -> 进入文件夹 查看每一行的行数 find . -name "*.m" -or -name "*.h" -or -name "*.xib ...

  2. ShrePoint 迁移域控

    背景: 客户的AD服务器换掉,重新安装AD,SharePoint服务器重新加入域后,将所有服务账号换成新域的账号. 虽然SP的应用程序采用的是表单认证,但是,用户(包括管理员)访问站点,添加数据的时候 ...

  3. C#/.NET基础视频[2018年][195集完]

    B站观看地址-无广告观看 https://www.bilibili.com/video/av21896829/ 前一两集 声音有点大 ,可以调大一点音量. 百度网盘下载地址 https://pan.b ...

  4. easyUI 异步加载树

    $(function () { var selected = $('#depttree').tree('getSelected'); $('#depttree').tree({ checkbox: f ...

  5. adb shell am broadcast 手动发送广播及adb shell am/pm其他命令

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/zi_zhe/article/details/72229201 在命令行可用adb shell am ...

  6. Linux 驱动开发

    linux驱动开发总结(一) 基础性总结 1, linux驱动一般分为3大类: * 字符设备 * 块设备 * 网络设备 2, 开发环境构建: * 交叉工具链构建 * NFS和tftp服务器安装 3, ...

  7. pandas DataFrame apply()函数(1)

    之前已经写过pandas DataFrame applymap()函数 还有pandas数组(pandas Series)-(5)apply方法自定义函数 pandas DataFrame 的 app ...

  8. ffmpeg-hls实现分析

    [时间:2018-05] [状态:Open] [关键词:流媒体,stream,HLS, ffmpeg, demuxer,avformat] 0 引言 本文将关注于FFmpeg中的HLS相关实现,相关代 ...

  9. curl命令例解

    curl -i --url "https://open.abc.com/ddn/purge/ItemIdReceiver" \-X "POST" \-u &qu ...

  10. 【iCore4 双核心板_uC/OS-II】例程二:任务的建立与删除

    一.实验说明: 本例程建立三个任务,通过任务寄存器来实现任务的建立与删除功能.红灯和绿灯同时以固定 频率闪烁,当任务寄存器为5时,删除绿灯闪烁的任务LED1,此时只有红灯闪烁,当任务寄存器的 值为10 ...