• 实体框架(Entity Framework)


    实体框架(Entity Framework)

    实体框架(Entity Framework)简介

    ADO.NET Entity Framework 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案,早期被称为 ObjectSpace,最新版本是EF6.0【CodeOnly功能得到了更好的支持】
    实体框架Entity Framework 是 ADO.NET 中的一组支持开发面向数据的软件应用程序的技术。是微软的一个ORM框架。

    EF插入实体

    步骤:定义要插入实体的变量,并依次赋值,然后交给数据库访问上下文进行管理,最后保存回数据库。

     1 //定义 访问数据库的 上下文
     2 
     3             DemoEntities demoEntities = new DemoEntities();
     4 
     5             Product product = new Product();//定义实体
     6 
     7             product.ProductName = "spring4G";
     8 
     9             product.SubTime = DateTime.Now;
    10 
    11             demoEntities.Product.AddObject(product);//加入上下午进行跟踪
    12 
    13             demoEntities.SaveChanges();//保存回数据库

    Linq To EF

    简单查询:var result = from c in Entities.Product select c;
    条件查询:
    普通linq写法: var result = from c in Entities.Product where c.Gender ==‘w’ select c;
     Lambda表达式写法:var result = from c in Entities.Customer.Where<Customer>(c =>c.Gender==‘w’);
     排序分页写法: IQueryable<Customers> cust10 = (from c in customers UnitPrice = d.UnitPrice OrderId = order.OrderID,ProductId = d.ProductID,};

    EF修改删除

    修改操作只需要直接修改表实体的属性,然后调用SaveChange方法就可以了。
    删除需要调用上下文的Remove()方法
     1 DemoEntities demoEntities = new DemoEntities();
     2 
     3             var products = from c in demoEntities.Product
     4 
     5                        where c.ProductId == 1
     6 
     7                        select c;
     8 
     9             var pro = products.FirstOrDefault<Product>();
    10 
    11             pro.ProductName = "hello c";
    12 
    13             demoEntities.SaveChanges();

    追踪EF生成的SQL脚本方法

    EF生成脚本最终由数据库执行,而截获SQL脚本最方便的就是使用SqlServer的Profile监测工具,不仅可以进行Sql脚本的监控而且可以监控脚本占用的CPU、脚本执行时间等
    使用方法:Management Studio→工具→SqlServer Profile  然后登陆后就可以监控当前的sqlserver执行的SQL脚本
     

    ORM in EF

    Entity Framework 利用了抽象化数据结构的方式,将每个数据库对象都转换成应用程序对象 (entity),而数据字段都转换为属性 (property),关系则转换为结合属性 (association),让数据库的 E/R 模型完全的转成对象模型,如此让程序设计师能用最熟悉的编程语言来调用访问。而在抽象化的结构之下,则是高度集成与对应结构的概念层、对应层和储存层,以 及支持 Entity Framework 的数据提供者 (provider),让数据访问的工作得以顺利与完整的进行。
      (1) 概念层:负责向上的对象与属性显露与访问。
      (2) 对应层:将上方的概念层和底下的储存层的数据结构对应在一起。
      (3) 储存层:依不同数据库与数据结构,而显露出实体的数据结构体,和 Provider 一起,负责实际对数据库的访问和 SQL 的产生。 
    在EF中的实体数据模型(EDM)由以下三种模型和具有相应文件扩展名的映射文件进行定义。

    · 概念架构定义语言文件 (.csdl) -- 定义概念模型。

    · 存储架构定义语言文件 (.ssdl) -- 定义存储模型

    · 映射规范语言文件 (.msl) -- 定义存储模型与概念模型之间的映射M。

    实体框架 使用这些基于 XML 的模型和映射文件将对概念模型中的实体和关系的创建、读取、更新和删除操作转换为数据源中的等效操作。EDM 甚至支持将概念模型中的实体映射到数据源中的存储过程。
  • 相关阅读:
    单链表
    队列
    产品经理们,遇到Bug请别十万火急
    2008年7月3日
    JS URL 参数
    NET 产品版权保护方案 (.NET源码加密保护)
    常用正则表达式
    网线接法
    C#创建多文档的界面
    TGE学习笔记04 billboard
  • 原文地址:https://www.cnblogs.com/Tan-sir/p/4882086.html
Copyright © 2020-2023  润新知