首先感谢大神们对知识的无私共享o(^▽^)o,这篇不算是原创但是也不是翻译也不是转发
今天这里的主角之一是linQ语句,和SQL的区别、简单说一点
SQL//执行计划 select * 第三步 from Branch 第一步 where id=124; 第二步 LinQ from Branch 第一步 where id=124; 第二步 select * 第三步
第一步:建立ADO.NET实体数据模型 一抓一大把
第二步:增删改查
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:待完善的地方,欢迎交流(●'◡'●)