public override void FormatMethodCall(IOqlExpressionVisitor visitor, MethodCallExpression methodCall)
        {
            if (methodCall.Method.DeclaringType == typeof(Enumerable))
            {
                visitor.Query.AppendBeginExpression();
                visitor.Visit(methodCall.Arguments[1]);
                visitor.Query.AppendIn();
                visitor.Visit(methodCall.Arguments.First());
                visitor.Query.AppendEndExpression();
                return;
            }


            if (methodCall.Method.DeclaringType == typeof(Queryable))
            {
                visitor.Query.AppendBeginExpression();
                visitor.Visit(methodCall.Arguments[1]);
                visitor.Query.AppendIn();
                IQueryable query = methodCall.Arguments.First().GetValue() as IQueryable;
                visitor.VisitSubQuery(query.Expression);
                visitor.Query.AppendEndExpression();
                return;
            }

            visitor.Query.AppendBeginExpression();


            visitor.Visit(methodCall.Object);
            visitor.Query.AppendLike();
            visitor.VisitSearchPattern(true, methodCall.Arguments.First(), true);

            visitor.Query.AppendEndExpression();
        }
 public override void FormatMethodCall(IOqlExpressionVisitor visitor, MethodCallExpression method)
 {
     visitor.Query.AppendBeginExpression();
     visitor.Visit(method.Object);
     visitor.Query.AppendLike();
     visitor.VisitSearchPattern(false, method.Arguments.First(), true);
     visitor.Query.AppendEndExpression();
 }