ORM还有一支 EF的增删改

xiaoxiao2021-02-28  18

首先感谢大神们对知识的无私共享o(^▽^)o,这篇不算是原创但是也不是翻译也不是转发

今天这里的主角之一是linQ语句,和SQL的区别、简单说一点

 

SQL//执行计划 select * 第三步 from Branch 第一步 where id=124; 第二步 LinQ from Branch 第一步 where id=124; 第二步 select * 第三步  

 

第一步:建立ADO.NET实体数据模型 一抓一大把

第二步:增删改查

//创建访问数据库的上下文 统一入口 入口 入口 入口 入口 HeimaRegulationEntities dbContext=new HeimaRegulationEntities(); Branch branch=new Branch(); branch.BranchName="mjx"; branch.BranchType=2; branch.DelFlag=0; branch.Remark="pretty"; branch.SubTime=DateTime.Now; //想dbcontext指向的branch表中添加一行数据 dbContext.Branch.AddObject(branch); //正在保存到数据库 生成SQL脚本 SQL脚本 SQL脚本 dbContext.SaveChanges();  

 

branch.id=124; branch.BranchType=0; branch.BranchName="mjx"; branch.Remark="xiaoxing"; branch.DelFlag=0; branch.SubTime=DateTime.Now; //修改此实体,将当期实体附加到上下文中管理 dbContext.Branch.Attach(branch); //将上下文跟踪的实例:branch状态改为修改状态Modefied dbContext.ObjectStateManager.ChangeObject(branch,EntityState.Modefied); dbContext.SaveChanges(); 另一种,其实差不多   branch.BranchName="mjx"; branch.BranchType=2; branch.DelFlag=0; branch.Remark="pretty"; branch.SubTime=DateTime.Now; //vs2012:自动附加到上下文 //实体跟踪,将状态更改为modified dbContext.Entry<Branch>(branch).State=EntityState.Modified; dbContext.SaveChanges(); third:   //查询实体:默认便是被跟踪的状态 var item=dbContext.Branch.FirstOrDefault(); //改变属性,自动将此实体状态改为modified状态 item.BranchName="马金兴"; dbContext.SaveChanges();

 

删:

 

Branch branch=new Branch(); branch.id=124; dbContext.Branch.Attach(branch); dbContext.ObjectStateManager.ChangeObject(branch,EntityState.Deleted); dbContext.SaveChanges();  

 

查 一、

#region 利用foreach循环查询数据库 马金兴 2017年5月24日17:21:05 foreach (var branchOne in dbContext.Branch) { Console.WriteLine(string.Format("id:{0} Name:{1}",branchOne.id,branchOne.BranchName)); } #endregion 二、   var item=from b in dbContext.Branch where b.id=124 select b;//查询出来的实体已经附件在上下文中,无需再附 .First();//取第一个元素 .FirstorDefault();//第一个 或者 默认值(根据类型) .Single();// = 一条 .SingleOrDefault();// < = 0条

 

三、

 from b in BuildingInfo  join p in Pro on b.proID equals p.id  select new {b.id,b.bulidingName,p.projectName}

 

小结:

主要是O---R----M;;;ORM框架

框架、入口、映射

面向对象里不同类型系统的数据之间的转换,实体变化映射到数据库表的变化

EF:

将实体的变化翻译成sql脚本,并执行到数据库中

 

PS:待完善的地方,欢迎交流(●'◡'●)

转载请注明原文地址: https://www.6miu.com/read-750012.html

最新回复(0)