Exemple #1
0
        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
            });
        }