Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- EmbossBitmapEffect.cs
- SQLGuidStorage.cs
- CapabilitiesSection.cs
- ArcSegment.cs
- CaseInsensitiveHashCodeProvider.cs
- BlobPersonalizationState.cs
- ContentWrapperAttribute.cs
- ClientTargetCollection.cs
- Char.cs
- ServiceAuthorizationBehavior.cs
- lengthconverter.cs
- LateBoundBitmapDecoder.cs
- Header.cs
- TrustSection.cs
- TypeViewSchema.cs
- ControlEvent.cs
- CommonRemoteMemoryBlock.cs
- BinaryNode.cs
- SocketInformation.cs
- PermissionSet.cs
- _NegoStream.cs
- ItemMap.cs
- SimpleHandlerFactory.cs
- TdsParserHelperClasses.cs
- PropertyState.cs
- ViewSimplifier.cs
- PageCopyCount.cs
- BinaryNode.cs
- MultiTouchSystemGestureLogic.cs
- XmlDocumentType.cs
- FlowDocument.cs
- CodeTypeReferenceCollection.cs
- TileModeValidation.cs
- ArrangedElementCollection.cs
- DesignerSerializerAttribute.cs
- CmsInterop.cs
- DataGridViewRowConverter.cs
- InstancePersistenceException.cs
- Margins.cs
- ScaleTransform3D.cs
- Module.cs
- XmlUrlResolver.cs
- PropertyGridCommands.cs
- CacheSection.cs
- Win32SafeHandles.cs
- MessageDispatch.cs
- PlatformNotSupportedException.cs
- TextContainer.cs
- Brush.cs
- Int32Storage.cs
- ImageClickEventArgs.cs
- DataContractAttribute.cs
- TextContainer.cs
- ComPlusInstanceContextInitializer.cs
- AtomParser.cs
- PropertyEntry.cs
- ZipIOBlockManager.cs
- RefreshEventArgs.cs
- Types.cs
- ColumnResult.cs
- MenuStrip.cs
- PathTooLongException.cs
- BitArray.cs
- TargetException.cs
- TableDetailsRow.cs
- SliderAutomationPeer.cs
- XmlSchemaComplexType.cs
- OdbcFactory.cs
- ConnectionManagementElementCollection.cs
- XmlAttributeHolder.cs
- DataStreamFromComStream.cs
- FileBasedResourceGroveler.cs
- TransactionChannelFaultConverter.cs
- SymDocumentType.cs
- InfoCardRSAPKCS1KeyExchangeFormatter.cs
- NumberAction.cs
- Win32NamedPipes.cs
- PropertyManager.cs
- HtmlInputSubmit.cs
- SingleBodyParameterMessageFormatter.cs
- DataAdapter.cs
- SystemPens.cs
- LayoutTableCell.cs
- OdbcRowUpdatingEvent.cs
- SQLDouble.cs
- IntSecurity.cs
- CacheHelper.cs
- WebBrowserEvent.cs
- OperationFormatUse.cs
- AnonymousIdentificationModule.cs
- BinaryKeyIdentifierClause.cs
- DropShadowEffect.cs
- CodeDomSerializerException.cs
- MiniConstructorInfo.cs
- SizeKeyFrameCollection.cs
- safelink.cs
- PropertyMetadata.cs
- ColorConverter.cs
- SequenceDesigner.cs
- FormViewPagerRow.cs