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
- CharEnumerator.cs
- NonVisualControlAttribute.cs
- ObjectDataSourceFilteringEventArgs.cs
- AuthenticationModuleElementCollection.cs
- Accessible.cs
- InstanceCollisionException.cs
- ReflectionServiceProvider.cs
- PrimitiveXmlSerializers.cs
- DataGridViewCellParsingEventArgs.cs
- PackagePart.cs
- MasterPage.cs
- ProviderSettingsCollection.cs
- Triangle.cs
- HttpProcessUtility.cs
- SerializationInfoEnumerator.cs
- RoutedEventValueSerializer.cs
- CompiledELinqQueryState.cs
- PropertyCondition.cs
- SiteMapDataSource.cs
- AppDomainResourcePerfCounters.cs
- _DynamicWinsockMethods.cs
- BuildTopDownAttribute.cs
- TakeQueryOptionExpression.cs
- DataGridAddNewRow.cs
- TransformConverter.cs
- XmlWriterSettings.cs
- SiteMapSection.cs
- MappedMetaModel.cs
- ColorPalette.cs
- CommonDialog.cs
- PartialCachingAttribute.cs
- MetadataSerializer.cs
- EventProvider.cs
- TextUtf8RawTextWriter.cs
- ExtenderControl.cs
- _FixedSizeReader.cs
- CodeConstructor.cs
- CacheDict.cs
- TypeReference.cs
- InvariantComparer.cs
- XXXOnTypeBuilderInstantiation.cs
- SpecularMaterial.cs
- TypePresenter.xaml.cs
- VerificationException.cs
- DynamicILGenerator.cs
- ADRole.cs
- GridView.cs
- ElementMarkupObject.cs
- XmlRootAttribute.cs
- SerialPort.cs
- versioninfo.cs
- TreeViewDesigner.cs
- StateManagedCollection.cs
- TraceRecord.cs
- UInt64Converter.cs
- SQLByte.cs
- QilBinary.cs
- StringDictionaryWithComparer.cs
- SafeUserTokenHandle.cs
- JsonFormatReaderGenerator.cs
- DbProviderFactoriesConfigurationHandler.cs
- WebPartManager.cs
- VectorCollectionConverter.cs
- DataGridTablesFactory.cs
- Polygon.cs
- SHA512.cs
- ChannelTraceRecord.cs
- PersistNameAttribute.cs
- ConvertTextFrag.cs
- ParameterCollection.cs
- BufferBuilder.cs
- HyperLinkField.cs
- TextAdaptor.cs
- BmpBitmapDecoder.cs
- BindingManagerDataErrorEventArgs.cs
- BitArray.cs
- DataGridViewCellToolTipTextNeededEventArgs.cs
- CreateUserWizard.cs
- Array.cs
- UnSafeCharBuffer.cs
- NumberFunctions.cs
- SizeF.cs
- RequestCachePolicyConverter.cs
- EntityDataSourceEntitySetNameItem.cs
- SchemaTypeEmitter.cs
- TransactionBridge.cs
- MetadataSection.cs
- CmsUtils.cs
- FixedTextSelectionProcessor.cs
- ToolStripItemImageRenderEventArgs.cs
- Polyline.cs
- WebPartDescriptionCollection.cs
- XmlAtomicValue.cs
- FamilyTypeface.cs
- NavigationWindowAutomationPeer.cs
- SEHException.cs
- EntityException.cs
- HelpFileFileNameEditor.cs
- HMACSHA1.cs
- LayoutTable.cs