Esempio n. 1
0
        protected override Expression VisitMarker(MarkerExpression expression)
        {
            var target = Visit(expression.Target);

            return(target == expression.Target
        ? expression
        : new MarkerExpression(target, expression.MarkerType));
        }
Esempio n. 2
0
        protected virtual Expression VisitMarker(MarkerExpression expression)
        {
            var processedTarget = Visit(expression.Target);

            if (processedTarget == expression.Target)
            {
                return(expression);
            }
            return(new MarkerExpression(processedTarget, expression.MarkerType));
        }
Esempio n. 3
0
        protected override Expression VisitMarker(MarkerExpression expression)
        {
            var target          = expression.Target;
            var processedTarget = Visit(target);

            if (expression.MarkerType != MarkerType.None && (expression.MarkerType & MarkerType.Default) == MarkerType.None)
            {
                if (itemMaterializationContextParameter == null)
                {
                    return(processedTarget);
                }
                var columns        = ColumnGatherer.GetColumns(target, ColumnExtractionModes.Distinct | ColumnExtractionModes.Ordered).ToArray();
                var sequenceCheck  = Expression.Call(MaterializationHelper.IsNullMethodInfo, tupleParameter, Expression.Constant(columns));
                var throwException = Expression.Convert(Expression.Call(MaterializationHelper.ThrowEmptySequenceExceptionMethodInfo), target.Type);
                return(Expression.Condition(sequenceCheck, throwException, processedTarget));
            }
            return(processedTarget);
        }
 protected override Expression VisitMarker(MarkerExpression expression)
 {
     Visit(expression.Target);
     return(expression);
 }