实体框架(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 甚至支持将概念模型中的实体映射到数据源中的存储过程。
原文地址:https://www.cnblogs.com/Tan-sir/p/4882086.html