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(); }