• C#中关于表达式与委托在EF中的不同表现总结


    
    
    Func<Invoice, bool> func = x => x.State == InvoiceState.Created;
    Expression<Func<Invoice, bool>> expression = x => x.State == InvoiceState.Created;
    
                using (var db = new CrmDbContext())
                {
                    var q1 = db.Invoices.Where(func); //全部查询出来后筛选
                    var q2 = db.Invoices.Where(expression); //直接延迟到Count时执行
    
                    var query = db.Invoices.AsQueryable();
                    var qq1 = query.Where(func);//全部查询出来后筛选
                    var qq2 = query.Where(expression); //直接延迟到Count时执行
    
                    Console.WriteLine($"q1:{q1.Count()}");
                    Console.WriteLine($"q2:{q2.Count()}");
                    Console.WriteLine($"qq1:{qq1.Count()}");
                    Console.WriteLine($"qq2:{qq2.Count()}");
                }

    看到上面的不同表现结果,知道该怎么写了吧!

    简单来说:委托的查询是针对一个(已存在的)集合的,而表达式是用来表述条件。

  • 相关阅读:
    camunda_07_gateways
    camunda_temp
    camunda_16_listener
    camunda_05_integrity_architect
    drools_10_function
    drools_05_query
    drools_09_drools_helper
    camunda_08_task_exception
    camunda_17_external_task
    带团队后的日常思考(十)
  • 原文地址:https://www.cnblogs.com/atwind/p/9237245.html
Copyright © 2020-2023  润新知