protected virtual Expression CreateMemberExpression() { Type memberType = FilterDescriptor.MemberType; MemberAccessExpressionBuilderBase expressionBuilderBase = ExpressionBuilderFactory.MemberAccess(ParameterExpression.Type, memberType, FilterDescriptor.Member); expressionBuilderBase.Options.CopyFrom(Options); expressionBuilderBase.ParameterExpression = ParameterExpression; Expression expression = expressionBuilderBase.CreateMemberAccessExpression(); if (memberType != null && TypeExtensions.GetNonNullableType(expression.Type) != TypeExtensions.GetNonNullableType(memberType)) { expression = Expression.Convert(expression, memberType); } return(expression); }
public static LambdaExpression Lambda <T>(string memberName, bool checkForNull) { MemberAccessExpressionBuilderBase expressionBuilder = ExpressionBuilderFactory.MemberAccess(typeof(T), memberName, checkForNull); return(expressionBuilder.CreateLambdaExpression()); }