• 使用Entity Framework时动态生成lamda表达式


    public Expression<Func<Job, bool>> ToLambda()
            {
                Type type = typeof (Job);
                ParameterExpression parameterExpression = Expression.Parameter(type, "job");

                Expression body = Expression.Equal(Expression.Property(parameterExpression, "MemberId"), Expression.Constant(MemberId));

                if (Key.IsNotNullAndWhiteSpace())
                {
                    MemberExpression keyMember = Expression.Property(parameterExpression, "JobName");
                    Expression value = Expression.Constant(Key);
                    MethodCallExpression keyExpression = Expression.Call(keyMember,
                                                                              typeof (string).GetMethod("Contains"),
                                                                              value);
                    body = Expression.And(body, keyExpression);
                }

                if(IsOpen.HasValue)
                {
                    MemberExpression isOpenExpression = Expression.Property(parameterExpression, "IsOpen");
                    Expression openExpression = Expression.Equal(isOpenExpression, Expression.Constant(IsOpen));
                    body = Expression.And(body, openExpression);
                }

                return Expression.Lambda<Func<Job, bool>>(body, parameterExpression);
            }

  • 相关阅读:
    读《大道至简》第七、八章有感
    跨域AJAX
    简单的变长数组
    约瑟夫环问题
    BZOJ 1050: [HAOI2006]旅行comf
    BZOJ 1061: [Noi2008]志愿者招募
    BZOJ 1016: [JSOI2008]最小生成树计数
    20155326刘美岑 2016-2017-2 《Java程序设计》第5周学习总结
    6月13日云栖精选夜读:数梦工场完成A轮7.5亿融资 三个维度构建“新型互联网”
    Java使用POI实现数据导出excel报表
  • 原文地址:https://www.cnblogs.com/hyl8218/p/2443316.html
Copyright © 2020-2023  润新知