public override void VisitWhereClause(WhereClause whereClause, QueryModel queryModel, int index)
        {
            foreach (var visitor in _whereClauseVisitors)
            {
                whereClause.TransformExpressions(visitor.VisitExpression);
            }

            base.VisitWhereClause(whereClause, queryModel, index);
        }
        public override void VisitWhereClause(WhereClause whereClause, QueryModel queryModel, int index)
        {
            Log.Trace(m => m("Original QueryModel:     {0}", queryModel));

            foreach (var visitor in whereSelectClauseVisitors)
            {
                whereClause.TransformExpressions(visitor.VisitExpression);
                Log.Trace(m => m("Transformed QueryModel after {0}: {1}", visitor.GetType().Name, queryModel));
            }

            base.VisitWhereClause(whereClause, queryModel, index);
        }
		public void Transform(WhereClause whereClause)
		{
			whereClause.TransformExpressions(VisitExpression);

			var values = _values.Pop();

			foreach (var memberExpression in values.MemberExpressions)
			{
				// If outer join can never produce true, we can safely inner join.
				if (!values.GetValues(memberExpression).Contains(true))
				{
					_joiner.MakeInnerIfJoined(memberExpression);
				}
			}
		}
 /// <summary>
 ///     This API supports the Entity Framework Core infrastructure and is not intended to be used
 ///     directly from your code. This API may change or be removed in future releases.
 /// </summary>
 public override void VisitWhereClause(WhereClause whereClause, QueryModel queryModel, int index)
     => whereClause.TransformExpressions(TransformingVisitor.Visit);
 public override void VisitWhereClause(WhereClause whereClause, QueryModel queryModel, int index)
 {
     whereClause.TransformExpressions(e => MergeAggregatingResultsInExpressionRewriter.Rewrite(e, new NameGenerator(queryModel)));
 }
			public override void VisitWhereClause(WhereClause whereClause, QueryModel queryModel, int index)
			{
				whereClause.TransformExpressions(new Visitor().VisitExpression);
			}
    public void TransformExpressions ()
    {
      var oldExpression = ExpressionHelper.CreateExpression ();
      var newExpression = ExpressionHelper.CreateExpression ();
      var clause = new WhereClause (oldExpression);

      clause.TransformExpressions (ex =>
          {
            Assert.That (ex, Is.SameAs (oldExpression));
            return newExpression;
          });

      Assert.That (clause.Predicate, Is.SameAs (newExpression));
    }