zoukankan      html  css  js  c++  java
  • 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();
            }

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

  • 相关阅读:
    去中心化存储的QoS是什么?
    谈如何真正地做好去中心存储?
    Kowala协议:一组分布式,自我调节,资产跟踪特性的加密货币(二)
    MySQL主从备份
    Java面试总结-基础篇2
    Java面试总结-基础篇1
    锁定网络问题的方法
    我是如何在实际项目中解决MySQL性能问题
    serialVersionUID的作用
    Windows和Linux下如何自动备份MySQL
  • 原文地址:https://www.cnblogs.com/zhaokunbokeyuan256/p/7027995.html
Copyright © 2011-2022 走看看