zoukankan      html  css  js  c++  java
  • 实体框架—Entity Framework

        简称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属性。

     
     
     
     
        
  • 相关阅读:
    jenkins插件开发
    常用模块-------hashlib (加密模块)
    树莓派在任意无线网下连接笔记本(借用笔记本屏幕)
    常用模块-------时间模块(time/datetime),随机数模块(random)
    pycharm常用的快捷方式及设置
    迭代器
    生成器
    获取行业和概念列表
    钉钉页面扫码登录中hmac加密签名
    获取钉钉开发access_token
  • 原文地址:https://www.cnblogs.com/qidakang/p/8831077.html
Copyright © 2011-2022 走看看