Beispiel #1
0
        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);
        }