一、实体框架(Entity FrameWork)简介
• 简称EF
• 与Asp.Net MVC关系与ADO.NET关系
• ADO.NET Entity FrameWork是微软以ADO.NET为基础所发展出来的对象关系对应(O/R Mapping)解决方法,早期被称为ObjectSpace,最新版本是EF6.0【CodeOnly功能得到了更好的支持】
• 实体框架Entity FrameWork 是ADO.NET中的一组支持开发面向数据的软件应用程序的技术。是微软的一个ORM框架。
二、什么是O/R Mapping
• 广义上:ORM指的是面向对象的对象模型和关系型数据库接口之间的相互转换。
• 狭义上,ORM可以被认为是,基于关系型数据库的数据存储,实现一个虚拟的面向对象的数据访问接口。理想情况下,基于这样一个面向对象的接口,持久化一个OO对象应该不需要了解任何关系型数据库存储数据的实现细节。
EF简单演示
第一步:右击-->添加新项-->ADO.NET 实体数据模型
第二步:实体数据模型向导,默认即可
第三步:新建连接
第四步:勾上(是,在连接字符串中包含敏感数据),下一步
第五步:选择模型中包括那些数据库表,完成即可

1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace EFDemoFirst 8 { 9 class Program 10 { 11 static void Main(string[] args) 12 { 13 //添加一个添加操作 14 //1、声明一个EF的上下文 15 DEMOEntities dbContext = new DEMOEntities(); 16 //2、声明一个实体 17 T_Seats seats = new T_Seats(); 18 seats.userName = "test"; 19 seats.pwdWord = "test1123"; 20 //3、告诉EF做一个插入操作 21 dbContext.T_Seats.Add(seats); 22 //4、告诉上下文,把实体的变化保存到数据库里面去 23 dbContext.SaveChanges(); 24 Console.Write("ok"); 25 Console.ReadKey(); 26 } 27 } 28 }

1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace EFDemoFirst 8 { 9 class Program 10 { 11 static void Main(string[] args) 12 { 13 //1、声明一个EF的上下文 14 DEMOEntities dbContext = new DEMOEntities(); 15 //2、声明一个实体 16 T_Seats seats = new T_Seats(); 17 seats.userName = "testTest"; 18 seats.pwdWord = "123456 "; 19 seats.id = 4; 20 //3、告诉EF做更新操作 21 //System.Data.Entity.EntityState.Added:添加 22 //System.Data.Entity.EntityState.Deleted:删除 23 //System.Data.Entity.EntityState.Modified:修改 24 dbContext.Entry<T_Seats>(seats).State = System.Data.Entity.EntityState.Modified; 25 //4、告诉上下文,把实体的变化保存到数据库里面去 26 dbContext.SaveChanges(); //执行SQL脚本的地方 27 Console.Write("ok"); 28 Console.ReadKey(); 29 } 30 } 31 }

1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace EFDemoFirst 8 { 9 class Program 10 { 11 static void Main(string[] args) 12 { 13 //1、声明一个EF的上下文 14 DEMOEntities dbContext = new DEMOEntities(); 15 ////2、声明一个实体 16 T_Seats seats = new T_Seats(); 17 seats.id = 4; //删除的WHERE条件,不加全部删除 18 //3、告诉ef做更新操作 19 //system.data.entity.entitystate.added:添加 20 //system.data.entity.entitystate.deleted:删除 21 //system.data.entity.entitystate.modified:修改 22 dbContext.Entry<T_Seats>(seats).State = System.Data.Entity.EntityState.Deleted; 23 //4、告诉上下文,把实体的变化保存到数据库里面去 24 dbContext.SaveChanges(); //执行SQL脚本的地方 25 Console.Write("ok"); 26 Console.ReadKey(); 27 } 28 } 29 }

1 static void Main(string[] args) 2 { 3 //查询 4 //1、声明一个EF的上下文 5 DEMOEntities dbContext = new DEMOEntities(); 6 //把这个表中的数据,全部映射打印出来 7 //foreach (var item in dbContext.T_Seats) 8 //{ 9 // Console.WriteLine(item.id+" "+item.userName+" "+item.pwdWord); 10 //} 11 #region Linq查询 12 var temp = from u in dbContext.T_Seats select u; 13 foreach (var t in temp) 14 { 15 Console.WriteLine(t.id+" "+t.userName+" "+t.pwdWord); 16 } 17 #endregion 18 Console.Write("ok"); 19 Console.ReadKey(); 20 }

1 static void Main(string[] args) 2 { 3 DataModelContainer dbContext = new DataModelContainer(); 4 var data = dbContext.CustomerSet.Where(u => u.ID > 1); 5 foreach (var item in data) 6 { 7 Console.WriteLine(item.ID+" ,"+item.CusName); 8 } 9 Console.WriteLine("ok.."); 10 Console.ReadKey(); 11 12 }

1 static void Main(string[] args) 2 { 3 DataModelContainer dbContext = new DataModelContainer(); 4 //升序 5 //var pageData = dbContext.CustomerSet.Where(u => u.ID > 2).OrderBy<Customer, int>(u => u.ID); 6 //降序 7 var pageData = dbContext.CustomerSet.Where(u => u.ID > 2).OrderByDescending<Customer, int>(u => u.ID).Skip(2*3).Take(2); 8 foreach (var item in pageData) 9 { 10 Console.WriteLine(item.ID+","+item.CusName); 11 } 12 Console.WriteLine("ok.."); 13 Console.ReadKey(); 14 }