protected override Expression VisitConstant(ConstantExpression c) { if (this.IsQuery(c)) { IQueryable q = (IQueryable)c.Value; ITable t = q as ITable; if (t != null) { MetaType entity = this.mapping.GetMetaType(t.ElementType, t.EntityID, t.EntityType); return(this.VisitSequence(this.mapping.CreateProjection(entity))); } else { return(RedundantSubqueryRemover.Remove(this.Visit(q.Expression))); } } return(c); }
public static Expression Remove(Expression expression) { expression = new RedundantSubqueryRemover().Visit(expression); expression = SubqueryMerger.Merge(expression); return expression; }
public static Expression Remove(Expression expression) { expression = new RedundantSubqueryRemover().Visit(expression); expression = SubqueryMerger.Merge(expression); return(expression); }