protected override Expression VisitMarker(MarkerExpression expression) { var target = Visit(expression.Target); return(target == expression.Target ? expression : new MarkerExpression(target, expression.MarkerType)); }
protected virtual Expression VisitMarker(MarkerExpression expression) { var processedTarget = Visit(expression.Target); if (processedTarget == expression.Target) { return(expression); } return(new MarkerExpression(processedTarget, expression.MarkerType)); }
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); }