internal static Remotion.Linq.Clauses.FromClauseBase TransformFromExpression(this IQueryVisitor visitor, Remotion.Linq.Clauses.FromClauseBase sourceExpression) { Remotion.Linq.Clauses.FromClauseBase result = sourceExpression; System.Linq.Expressions.Expression expression = visitor.TransformUnaryExpression(sourceExpression.FromExpression); if (expression != sourceExpression.FromExpression) { object item; if (!TransformedExpressionsCache.TryGetValue(sourceExpression, out item)) { TransformedExpressionsCache[sourceExpression] = result = new AdditionalFromClause(sourceExpression.ItemName, sourceExpression.ItemType, (System.Linq.Expressions.MemberExpression)expression); } else { result = (AdditionalFromClause)item; } } return(result); }