ORM还有一支 EF的增删改

首先感谢大神们对知识的无私共享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:待完善的地方,欢迎交流(●'◡'●)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 30
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 30
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值