动态组合lambda 表达式

 //第三方审核记录实体集合—动态组合lambda 表达式
                    Expression<Func<ThirdAdEntity, bool>> thirdWhere =
                        p => p.Observer.Split(‘,‘).Contains(ortableEntity.CompanyAdtId.ToString()) &&
                             p.AdStartDate <= commonProperty.SystemDateTime &&
                             p.ThirdAdId != ortableEntity.ThirdAdId;
                    //质量管理检查记录 动态组合lambda 表达式
                    Expression<Func<QMSCheckEntity, bool>> checkWhere =
                        p => p.CheckGroupPerson.Split(‘,‘).Contains(ortableEntity.CompanyAdtId.ToString()) &&
                             p.CheckStartDate <= commonProperty.SystemDateTime;
                    //判断是否添加开始日期的校验
                    if (orTableWorking != null)
                    {
                        Expression<Func<ThirdAdEntity, bool>> starttWhere = p => p.AdStartDate >= orTableWorking.ParenORTable.ReportDate;
                        var invokedExpr = Expression.Invoke(starttWhere, thirdWhere.Parameters);
                        thirdWhere = Expression.Lambda<Func<ThirdAdEntity, bool>>
                            (Expression.And(thirdWhere.Body, invokedExpr), thirdWhere.Parameters);

                        Expression<Func<QMSCheckEntity, bool>> startcWhere = p => p.CheckStartDate >= orTableWorking.ParenORTable.ReportDate;
                        invokedExpr = Expression.Invoke(startcWhere, checkWhere.Parameters);
                        checkWhere = Expression.Lambda<Func<QMSCheckEntity, bool>>
                            (Expression.And(checkWhere.Body, invokedExpr), checkWhere.Parameters);
                        strOrTableWorking = orTableWorking.WorkingExperience + "\n";
                    }
时间: 2024-10-26 21:57:46

动态组合lambda 表达式的相关文章

动态生成lambda表达式

//1.0 获取我的申请单 int uid = UserMgr.GetCurrentLoginUser().uID; //2.0 获取参数 string kname = f["kname"]; string status = f["status"]; //第一个条件: var query= c => c.fCreatorID == uid //定义出一个c的参数,它的类型为wfReqeustForm var ps = Expression.Parameter(

动态创建 Lambda 表达式

首先我们看一个简单 Lambda 表达式的构成. i => i > 5 在这个表达式中,"i" 被称为 Parameter,"i > 5" 是 Body.我们可以对 Body 进行更进一步的分解,那么 "i > 5" 分别包含参数(i).操作符(>)以及一个常数(5).所有这些通过特定顺序的组合,从而构建一个完整的 Lambda 表达式. 我们通过一些例子,来学习如何动态构建这些表达式. 例子1 var list =

取代DataTable Select方法 并动态拼接Lambda表达式

原来的程序里面,有这样一段代码 var parentFilterString = string.Empty; parentFilterString = exceptList.Aggregate(parentFilterString, (current, id) => current + (" " + parentFieldName + " = '" + id + "' or")); parentFilterString = parentFi

动态构建Lambda表达式实现EF动态查询

在使用Entity Framework做数据查询的时候,查询条件往往不是固定的,需要动态查询.可以通过动态构建Lamda表达式来实现动态查询. Lamda表达式 使用Lamda表达式可以很方便的按条件过滤数据.Entity Framework也是将Lamda表达式转换成对应的SQL语句执行. 比如下列代码,输出年龄大于1的人的名字: namespace ConsoleApp { public class Person { public string Name { get; set; } publ

根据表达式树动态生成Lambda表达式

1.准备 环境:Asp.Net MVC5 .EF6 前置知识:反射.使用过EF编写过Lambda表达式 2.基础类库 2.1该高级条件的类型 1 /// <summary> 2 /// 当前条件所属类型 3 /// </summary> 4 public enum Em_AS_ConditionType 5 { 6 /// <summary> 7 /// 并 8 /// </summary> 9 [Description("并")] 10

SqlDataReader生成动态Lambda表达式

上一扁使用动态lambda表达式来将DataTable转换成实体,比直接用反射快了不少.主要是首行转换的时候动态生成了委托. 后面的转换都是直接调用委托,省去了多次用反射带来的性能损失. 今天在对SqlServer返回的流对象 SqlDataReader 进行处理,也采用动态生成Lambda表达式的方式转换实体. 先上一版代码 1 using System; 2 using System.Collections.Generic; 3 using System.Data; 4 using Syst

表达式树动态拼接lambda

动态拼接lambda表达式树 前言 最近在优化同事写的代码(我们的框架用的是dapperLambda),其中有一个这样很普通的场景——界面上提供了一些查询条件框供用户来进行过滤数据.由于dapperLambda按条件查询时是传入表达式树的参数,这样比如其中查询条件有一个是审核状态,另外五个是模糊查询,那这查询时的表达式树参数就要写两次,这样使得代码看起来有很多是重复的,而且如果查询条件多的情况下,在写那表达式树参数时也容易漏写或错写.所以我在想如果可以动态拼接这表达式树,那这代码就要精简很多了.

C#WebAPI根据参数生成Lambda表达式

在项目开发中会遇到很多使用lambda表达式的情况,每次都需要判断条件然后在执行代码,对于一个参数可选的接口来说.实现更麻烦.后来在网上看到这种方法.分享给大家.写的不好的地方多多包涵.一开始自己尝试动态生成lambda表达式.多次尝试都不尽人意,后来在nuget中发现了linqkit这个工具.个人感觉非常强大.Linqkit Git库中有详细的代码和文档,你完全可以把他的代码clone下来然后根据自己的需要进行修改. 上例子: public async Task<IHttpActionResu

动态生成C# Lambda表达式

转载:http://www.educity.cn/develop/1407905.html,并整理! 对于C# Lambda的理解我们在之前的文章中已经讲述过了,那么作为Delegate的进化使用,为了让代码简洁和优雅的呈现,C# Lambda表达式的使用功不可灭,那么依托外部条件如何动态构建C# Lambda表达式呢.下面让我们来具体的看看实施. 或许你会奇怪这个需求是如何产生的…… 首先,Lambda 在 DLinq 中承担了以往 T-SQL 的部分角色:其次,在数据库设计中,我们往往需要依