internal static NodeBase Resolve(MethodCallExpression callExpression, string columnName) { LikeMethod callFunction; if (Enum.TryParse(callExpression.Method.Name, true, out callFunction)) { var member = callExpression.Object as MemberExpression; var fieldValue = callExpression.Arguments.First().GetExpressionValue(); if (fieldValue != null) { return new LikeNode { MemberNode = new MemberNode { TableName = TableInfo.GetTableName(member), FieldName = columnName }, Method = callFunction, Value = fieldValue.ToString() } } ; } var value = callExpression.InvokeMethodCall(); return(new ValueNode { Value = value }); }