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
- TextServicesContext.cs
- UrlPath.cs
- SemanticKeyElement.cs
- AddInServer.cs
- EntityDataSourceEntitySetNameItem.cs
- RegularExpressionValidator.cs
- AtlasWeb.Designer.cs
- Request.cs
- SecUtil.cs
- OrderedDictionary.cs
- ScalarOps.cs
- NumberFunctions.cs
- VisualStyleElement.cs
- PropertyInformation.cs
- DataGridTableCollection.cs
- Border.cs
- HttpResponseMessageProperty.cs
- SqlWebEventProvider.cs
- PlainXmlWriter.cs
- GenericAuthenticationEventArgs.cs
- RoleManagerSection.cs
- ContextQuery.cs
- GiveFeedbackEvent.cs
- ReachSerializationUtils.cs
- WebMessageFormatHelper.cs
- BitmapMetadataBlob.cs
- securestring.cs
- RootNamespaceAttribute.cs
- WebServiceHandlerFactory.cs
- IOException.cs
- DrawingGroup.cs
- OdbcConnectionString.cs
- FilterQueryOptionExpression.cs
- DataTemplateSelector.cs
- RelatedPropertyManager.cs
- RowSpanVector.cs
- DetailsViewPageEventArgs.cs
- Action.cs
- BindingExpressionUncommonField.cs
- DoubleCollection.cs
- StreamResourceInfo.cs
- NullableDecimalAverageAggregationOperator.cs
- MediaTimeline.cs
- ParallelLoopState.cs
- WebCategoryAttribute.cs
- Transform3DGroup.cs
- BooleanKeyFrameCollection.cs
- TemplateManager.cs
- RangeEnumerable.cs
- PopupRootAutomationPeer.cs
- XmlSerializationGeneratedCode.cs
- TextSpanModifier.cs
- NonSerializedAttribute.cs
- Axis.cs
- ChangeProcessor.cs
- RegexRunnerFactory.cs
- PresentationTraceSources.cs
- WebServiceHost.cs
- ProfileManager.cs
- IsolatedStoragePermission.cs
- FaultDesigner.cs
- TypographyProperties.cs
- SmiGettersStream.cs
- DecoderNLS.cs
- RSACryptoServiceProvider.cs
- Geometry.cs
- XmlDocumentFragment.cs
- CompositionCommandSet.cs
- EntityDataSourceMemberPath.cs
- CreateUserWizardDesigner.cs
- Soap12FormatExtensions.cs
- AliasExpr.cs
- ClientConfigPaths.cs
- XmlSchemaSimpleType.cs
- BindingValueChangedEventArgs.cs
- DataComponentNameHandler.cs
- StringDictionaryWithComparer.cs
- EnterpriseServicesHelper.cs
- EncryptedKeyIdentifierClause.cs
- DateBoldEvent.cs
- StorageComplexTypeMapping.cs
- SecurityVersion.cs
- MergeExecutor.cs
- GridPattern.cs
- DataGridItem.cs
- UpDownEvent.cs
- Int64KeyFrameCollection.cs
- Int32AnimationBase.cs
- Int64KeyFrameCollection.cs
- DynamicResourceExtensionConverter.cs
- DirectionalLight.cs
- SessionPageStatePersister.cs
- UpdateCompiler.cs
- SourceFileInfo.cs
- LockCookie.cs
- HttpAsyncResult.cs
- PageContentAsyncResult.cs
- RawStylusInput.cs
- FlowDecisionDesigner.xaml.cs
- Focus.cs