EF 更新操作 lambda解释+=

我曾写过一个EF批量更新、删除的博客,后来操作的过程中经常遇到更新字段,但是要在原来的基础上计算的情况,我就先去获取一遍数据然后再计算,最后再去更新,显然这个操作是很复杂的

 

var guest = dbContext.Guest.Where(g => g.ID == ID);
if (guest.FirstOrDefault() != null)
{
    var balance = guest.FirstOrDefault().Balance + price;
    guest.Update(g => new Guest { Balance = balance });
}

经过分析我发现在update针对的对象时where 查询出来的,那我就可以操作查询出来的东西,并且在update 的时候也有e ,Lambda 的简写用的多了都忘记了它本身复杂情况的语法了,明白了之后那就很简单了,我可以直接操作e.money 

public void TextForZK()
        {
            using (var dbContext = new FMDbContext())
            {
                //更新e.money 
                dbContext.Expenditure.Where(e => e.ID == 1).Update(e => new Expenditure { Money = e.Money + 1 });
            }
        }

细思极恐 ,想一想 "Lambda表达式"是一个匿名函数,是一种高效的类似于函数式编程的表达式

Lambda简化了匿名委托的使用,减少开发中需要编写的代码量。
具体内容:它可以包含表达式和语句,并且可用于创建委托或表达式目录树类型,支持带有可绑定到委托或表达式树的输入参数的内联表达式。
写法:所有Lambda表达式都使用Lambda运算符=>,该运算符读作"goes to"。Lambda运算符的左边是输入参数(如果有),右边是表达式或语句块。Lambda表达式x => x * x读作"x goes to x times x"。
 
简单介绍一下方便理解
利用委托处理方法:
//委托  逛超市
        delegate int GuangChaoshi(int a);
        static void Main(string[] args)
        {
            GuangChaoshi gwl = JieZhang;
            Console.WriteLine(gwl(10) + "");   //打印20,委托的应用
            Console.ReadKey();
        }
        
        //结账
        public static int JieZhang(int a)
        {
            return a + 10;
        }

利用lambda表达式处理方法:

//委托  逛超市
        delegate int GuangChaoshi(int a);
        static void Main(string[] args)
        {          
           // GuangChaoshi gwl = JieZhang;
            GuangChaoshi gwl = p => p + 10;
            Console.WriteLine(gwl(10) + "");   //打印20,表达式的应用
            Console.ReadKey();
        }

是不是理解了,哈哈哈,我对自己无语了,想想以前写的代码,感觉自己弱爆了!

 

转载于:https://www.cnblogs.com/zhaokunbokeyuan256/p/7027995.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值