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();
            }

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

  • 相关阅读:
    1024X768大图 (Wallpaper)
    (Mike Lynch)Application of linear weight neural networks to recognition of hand print characters
    瞬间模糊搜索1000万基本句型的语言算法
    单核与双核的竞争 INTEL P4 670对抗820
    FlashFTP工具的自动缓存服务器目录的功能
    LDAP over SSL (LDAPS) Certificate
    Restart the domain controller in Directory Services Restore Mode Remotely
    How do I install Active Directory on my Windows Server 2003 server?
    指针与指针变量(转)
    How to enable LDAP over SSL with a thirdparty certification authority
  • 原文地址:https://www.cnblogs.com/zhaokunbokeyuan256/p/7027995.html
Copyright © 2011-2022 走看看