简称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. java logAspect

    @Around("execution(* com.iotx.cep.biz.rpc.impl.*.*(..)) " + "&& !execution(* ...

  2. Linux下清理内存和Cache方法见下文:

    暂时目前的环境处理方法比较简单: 在root用户下添加计划任务: */10 * * * * sync;echo 3 > /proc/sys/vm/drop_caches; 每十分钟执行一次,先将 ...

  3. 单片机成长之路(51基础篇) - 015 关于sdcc的多文件编译范例二

    本文是续 单片机成长之路(51基础篇) - 009 关于sdcc的多文件编译范例(一)编写的. 在实际的工作中,单片机的头文件和功能函数不可能同全部放在同一个文件夹下面,我们把单片机成长之路(51基础 ...

  4. Canny 边缘检测及相关应用

    该内容为 <学习图像局部特征检测和描述-基于OpenCV源码分析的算法与实现> <OpenCV 3 计算机视觉-Python语言实现> OpenCV官方网站的 https:// ...

  5. Linux下统计当前文件夹下的文件个数、目录个数

    统计当前文件夹下文件的个数,包括子文件夹里的 ls -lR|grep "^-"|wc -l 统计文件夹下目录的个数,包括子文件夹里的 ls -lR|grep "^d&qu ...

  6. SQL Server 各种时间业务处理

    1.SQL 生成随机字符串作为流水号 ), ) --年月日时分秒 ), ),'-','') ), ),':','') --随机英文字符 ))),) ) --英文加数字 随机五位数字 )))) ))), ...

  7. Hadoop相关基础知识

    因为个人对这块的知识也不熟悉,所以大多内容来源于网络. 1.      Hadoop项目框架 2.      Hadoop Hadoop是一个由Apache基金会所开发的分布式系统基础架构. 用户可以 ...

  8. 理解REST和RPC

    REST 越来越多的人开始意识到,网站即软件,而且是一种新型的软件. 网站开发,完全可以采用软件开发的模式.但是传统上,软件和网络是两个不同的领域,很少有交集:软件开发主要针对单机环境,网络则主要研究 ...

  9. js中定义配置文件

    var config = (function($){ $.testConfig = { contextPath:'http://localhost:8080/test', maps:[ {id:'ma ...

  10. Spring-Cloud-Gateway 从升级到放弃

    1 为什么要升级为spring-cloud-gateway? Spring Cloud Gateway features: Built on Spring Framework 5, Project R ...