Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / ndp / fx / src / DLinq / Dlinq / SqlClient / Query / SqlAggregateChecker.cs / 1 / SqlAggregateChecker.cs
using System;
using System.Collections.Generic;
using System.Linq.Expressions;
using System.Data.Linq;
namespace System.Data.Linq.SqlClient {
internal class SqlAggregateChecker {
Visitor visitor;
internal SqlAggregateChecker() {
this.visitor = new Visitor();
}
internal bool HasAggregates(SqlNode node) {
visitor.hasAggregates = false;
visitor.Visit(node);
return visitor.hasAggregates;
}
class Visitor : SqlVisitor {
internal bool hasAggregates;
internal Visitor() {
}
internal override SqlExpression VisitSubSelect(SqlSubSelect ss) {
return ss;
}
internal override SqlSource VisitSource(SqlSource source) {
return source;
}
internal override SqlExpression VisitUnaryOperator(SqlUnary uo) {
switch (uo.NodeType) {
case SqlNodeType.Min:
case SqlNodeType.Max:
case SqlNodeType.Avg:
case SqlNodeType.Sum:
case SqlNodeType.Count:
case SqlNodeType.LongCount:
this.hasAggregates = true;
return uo;
default:
return base.VisitUnaryOperator(uo);
}
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
using System;
using System.Collections.Generic;
using System.Linq.Expressions;
using System.Data.Linq;
namespace System.Data.Linq.SqlClient {
internal class SqlAggregateChecker {
Visitor visitor;
internal SqlAggregateChecker() {
this.visitor = new Visitor();
}
internal bool HasAggregates(SqlNode node) {
visitor.hasAggregates = false;
visitor.Visit(node);
return visitor.hasAggregates;
}
class Visitor : SqlVisitor {
internal bool hasAggregates;
internal Visitor() {
}
internal override SqlExpression VisitSubSelect(SqlSubSelect ss) {
return ss;
}
internal override SqlSource VisitSource(SqlSource source) {
return source;
}
internal override SqlExpression VisitUnaryOperator(SqlUnary uo) {
switch (uo.NodeType) {
case SqlNodeType.Min:
case SqlNodeType.Max:
case SqlNodeType.Avg:
case SqlNodeType.Sum:
case SqlNodeType.Count:
case SqlNodeType.LongCount:
this.hasAggregates = true;
return uo;
default:
return base.VisitUnaryOperator(uo);
}
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- AdornedElementPlaceholder.cs
- RuntimeConfigLKG.cs
- PathFigure.cs
- PrimitiveCodeDomSerializer.cs
- SchemaObjectWriter.cs
- RuntimeConfigLKG.cs
- InfoCardRSAPKCS1KeyExchangeDeformatter.cs
- EntityClientCacheKey.cs
- NumericUpDownAccelerationCollection.cs
- DocumentApplicationJournalEntry.cs
- SafeFileMappingHandle.cs
- SqlBooleanizer.cs
- SendingRequestEventArgs.cs
- PropertyCondition.cs
- BinaryObjectInfo.cs
- XamlWrappingReader.cs
- PerformanceCountersElement.cs
- DynamicControlParameter.cs
- AppSettingsExpressionBuilder.cs
- WorkflowRequestContext.cs
- UserCancellationException.cs
- DataGridState.cs
- DataList.cs
- EntitySet.cs
- RectangleF.cs
- BooleanAnimationBase.cs
- OleDbWrapper.cs
- RouteItem.cs
- SqlDataSourceCustomCommandEditor.cs
- InternalBufferOverflowException.cs
- ArcSegment.cs
- PropertyGrid.cs
- XmlSchemaAnyAttribute.cs
- AssemblyBuilder.cs
- OperationDescriptionCollection.cs
- OpacityConverter.cs
- DashStyle.cs
- Frame.cs
- XmlAnyElementAttributes.cs
- UIElementParagraph.cs
- assertwrapper.cs
- AsyncPostBackTrigger.cs
- WeakEventManager.cs
- DecimalAnimationUsingKeyFrames.cs
- DataListItem.cs
- InstanceDataCollection.cs
- RenderData.cs
- DefaultBindingPropertyAttribute.cs
- TableLayoutPanelCellPosition.cs
- HijriCalendar.cs
- ApplicationTrust.cs
- ActiveXHelper.cs
- MouseGestureValueSerializer.cs
- wgx_render.cs
- JavaScriptString.cs
- ExpandableObjectConverter.cs
- Command.cs
- PtsCache.cs
- ObjectStateFormatter.cs
- Helpers.cs
- AnimationLayer.cs
- HttpProfileBase.cs
- PrintDialogException.cs
- Certificate.cs
- DesignerVerb.cs
- HtmlElementErrorEventArgs.cs
- ConnectionsZoneDesigner.cs
- RecipientInfo.cs
- MaterialGroup.cs
- SoapEnumAttribute.cs
- EndpointConfigContainer.cs
- xml.cs
- webeventbuffer.cs
- HostProtectionPermission.cs
- WebBrowserBase.cs
- WeakReference.cs
- VScrollProperties.cs
- SqlFormatter.cs
- InsufficientMemoryException.cs
- AssociationTypeEmitter.cs
- _Win32.cs
- ReflectEventDescriptor.cs
- safelinkcollection.cs
- ImageDrawing.cs
- DoubleAnimationUsingPath.cs
- KeyPressEvent.cs
- PointF.cs
- ClientSettingsStore.cs
- Blend.cs
- ImpersonateTokenRef.cs
- RuntimeIdentifierPropertyAttribute.cs
- NegationPusher.cs
- UnaryNode.cs
- ViewBase.cs
- DbReferenceCollection.cs
- EventEntry.cs
- DataGridViewSortCompareEventArgs.cs
- SamlAudienceRestrictionCondition.cs
- OleDbParameterCollection.cs
- ParserStreamGeometryContext.cs