Code:
/ 4.0 / 4.0 / 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. 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
- Variable.cs
- Label.cs
- Environment.cs
- SchemaEntity.cs
- DbConnectionInternal.cs
- Axis.cs
- UnknownExceptionActionHelper.cs
- ActivityExecutorOperation.cs
- X509RawDataKeyIdentifierClause.cs
- FixedPosition.cs
- ServicesUtilities.cs
- EntityType.cs
- DataObjectFieldAttribute.cs
- SelectionChangedEventArgs.cs
- DataServiceRequestOfT.cs
- RequestCachePolicy.cs
- DetailsViewDeleteEventArgs.cs
- References.cs
- ObjectConverter.cs
- Simplifier.cs
- GridEntryCollection.cs
- GPRECTF.cs
- Parser.cs
- HttpChannelFactory.cs
- nulltextcontainer.cs
- ManipulationCompletedEventArgs.cs
- DataSourceHelper.cs
- RoutedEventArgs.cs
- RuntimeHelpers.cs
- XamlWrappingReader.cs
- BamlRecordReader.cs
- CompressedStack.cs
- MimeWriter.cs
- DataRowChangeEvent.cs
- SemaphoreFullException.cs
- XmlDictionaryString.cs
- TextElementEditingBehaviorAttribute.cs
- Model3DGroup.cs
- GradientBrush.cs
- MultiView.cs
- UnmanagedBitmapWrapper.cs
- DockProviderWrapper.cs
- PreservationFileWriter.cs
- WsdlInspector.cs
- RequestCachePolicy.cs
- WebPartConnectionsConnectVerb.cs
- SmtpMail.cs
- AccessDataSourceView.cs
- FrugalMap.cs
- MutableAssemblyCacheEntry.cs
- PackWebRequestFactory.cs
- AssemblyNameProxy.cs
- WebPartRestoreVerb.cs
- ClearTypeHintValidation.cs
- SecurityKeyType.cs
- ClientScriptManagerWrapper.cs
- XmlAnyElementAttribute.cs
- HtmlInputHidden.cs
- PropertyToken.cs
- TrackingCondition.cs
- DbConnectionFactory.cs
- EndpointDispatcherTable.cs
- BitmapMetadata.cs
- ParameterCollectionEditor.cs
- Vector3DCollection.cs
- InvalidPropValue.cs
- SslStream.cs
- TextDocumentView.cs
- DocumentPageHost.cs
- DriveInfo.cs
- _ConnectionGroup.cs
- EntitySetDataBindingList.cs
- ClientFormsAuthenticationMembershipProvider.cs
- GridViewColumn.cs
- InvalidPrinterException.cs
- BlurEffect.cs
- BaseCollection.cs
- DataRecord.cs
- SocketInformation.cs
- WebConfigurationFileMap.cs
- ZipFileInfoCollection.cs
- DomainConstraint.cs
- WeakReferenceEnumerator.cs
- ColumnWidthChangingEvent.cs
- WebPartVerbCollection.cs
- TextEncodedRawTextWriter.cs
- QilXmlWriter.cs
- DesignSurfaceServiceContainer.cs
- DoWorkEventArgs.cs
- TextContainerChangedEventArgs.cs
- AdornedElementPlaceholder.cs
- BadImageFormatException.cs
- IUnknownConstantAttribute.cs
- UserControl.cs
- HierarchicalDataBoundControl.cs
- Repeater.cs
- SpecularMaterial.cs
- input.cs
- SqlTransaction.cs
- HttpRuntime.cs