Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DLinq / Dlinq / SqlClient / Query / SqlAggregateChecker.cs / 1305376 / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- StructuralType.cs
- BaseParagraph.cs
- ExceptionTrace.cs
- DataGridView.cs
- UnsafeNativeMethods.cs
- CompilationLock.cs
- WmlPhoneCallAdapter.cs
- PropertyItemInternal.cs
- DrawingBrush.cs
- SiteOfOriginPart.cs
- ReflectionPermission.cs
- Control.cs
- TextBlockAutomationPeer.cs
- ObjectViewListener.cs
- RootBrowserWindow.cs
- ResourceReferenceExpressionConverter.cs
- BaseCodePageEncoding.cs
- WizardForm.cs
- QueryGeneratorBase.cs
- Int32Rect.cs
- ApplicationDirectory.cs
- UnknownBitmapEncoder.cs
- WebPartDisplayModeCollection.cs
- NamespaceCollection.cs
- TdsRecordBufferSetter.cs
- SettingsContext.cs
- AttributedMetaModel.cs
- WeakReferenceList.cs
- QuaternionRotation3D.cs
- DocumentEventArgs.cs
- TraceUtility.cs
- SecurityPolicySection.cs
- DESCryptoServiceProvider.cs
- CompareInfo.cs
- AlgoModule.cs
- CookielessHelper.cs
- XmlSerializationWriter.cs
- RecordsAffectedEventArgs.cs
- CodeDelegateInvokeExpression.cs
- DataGridRow.cs
- BinHexEncoder.cs
- NullableLongSumAggregationOperator.cs
- CodeMemberEvent.cs
- XmlSerializerVersionAttribute.cs
- BitmapSource.cs
- WebReferencesBuildProvider.cs
- RbTree.cs
- TableLayoutRowStyleCollection.cs
- ActivityWithResult.cs
- TypeDescriptorFilterService.cs
- SafeEventLogWriteHandle.cs
- XmlSchemaSet.cs
- ScriptResourceHandler.cs
- MobileListItemCollection.cs
- SystemWebCachingSectionGroup.cs
- ArglessEventHandlerProxy.cs
- NavigateEvent.cs
- MatrixStack.cs
- FormViewDeletedEventArgs.cs
- DataGridDefaultColumnWidthTypeConverter.cs
- RegexMatchCollection.cs
- ScaleTransform.cs
- MenuBase.cs
- RMEnrollmentPage3.cs
- SHA256.cs
- DataGridRelationshipRow.cs
- LoginUtil.cs
- BitmapScalingModeValidation.cs
- CompilerTypeWithParams.cs
- CreateUserWizardStep.cs
- Model3DGroup.cs
- GlyphRunDrawing.cs
- VectorValueSerializer.cs
- ExpressionBuilderCollection.cs
- Faults.cs
- TreeBuilderBamlTranslator.cs
- LineGeometry.cs
- AuthenticationConfig.cs
- PositiveTimeSpanValidatorAttribute.cs
- HostExecutionContextManager.cs
- ZipIOBlockManager.cs
- BookmarkScope.cs
- CookieParameter.cs
- ValidatingReaderNodeData.cs
- FileDataSourceCache.cs
- MultiViewDesigner.cs
- RuntimeArgumentHandle.cs
- SoapSchemaExporter.cs
- CodeBinaryOperatorExpression.cs
- TextParentUndoUnit.cs
- Quad.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- Parser.cs
- DataServiceProcessingPipeline.cs
- StatusBarItem.cs
- LogExtent.cs
- MultipartIdentifier.cs
- SizeChangedEventArgs.cs
- Rect3D.cs
- SqlDataSourceQueryEditor.cs