Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- SurrogateChar.cs
- DataExpression.cs
- SystemPens.cs
- HWStack.cs
- GridViewSortEventArgs.cs
- AppDomainAttributes.cs
- ImplicitInputBrush.cs
- ConfigXmlElement.cs
- MultiView.cs
- MSAAEventDispatcher.cs
- GetPageCompletedEventArgs.cs
- SubtreeProcessor.cs
- Lock.cs
- DataGridToolTip.cs
- StoreAnnotationsMap.cs
- TypeKeyValue.cs
- DependencySource.cs
- IItemContainerGenerator.cs
- DigitShape.cs
- MD5HashHelper.cs
- OleDbMetaDataFactory.cs
- HttpCachePolicyBase.cs
- LambdaCompiler.Logical.cs
- CrossAppDomainChannel.cs
- TextServicesLoader.cs
- PaintValueEventArgs.cs
- TerminatorSinks.cs
- FileAuthorizationModule.cs
- DeclarativeCatalogPartDesigner.cs
- UpdateTracker.cs
- Header.cs
- OwnerDrawPropertyBag.cs
- Rotation3D.cs
- FontInfo.cs
- ExeConfigurationFileMap.cs
- FilterUserControlBase.cs
- ExecutionEngineException.cs
- CopyOnWriteList.cs
- Condition.cs
- KeyProperty.cs
- Action.cs
- CheckBox.cs
- LayoutDump.cs
- SecurityResources.cs
- DataReaderContainer.cs
- CorrelationValidator.cs
- Window.cs
- TimeZoneInfo.cs
- RectangleF.cs
- Icon.cs
- TypeConvertions.cs
- DataObject.cs
- EncoderExceptionFallback.cs
- AutomationEvent.cs
- DataControlReferenceCollection.cs
- PerformanceCounterPermissionEntry.cs
- CalendarSelectionChangedEventArgs.cs
- XmlBinaryReaderSession.cs
- HandoffBehavior.cs
- OleDbRowUpdatingEvent.cs
- DataBoundControl.cs
- linebase.cs
- DocumentReference.cs
- KeyboardEventArgs.cs
- DataControlFieldCell.cs
- AsymmetricCryptoHandle.cs
- DataContractJsonSerializerOperationBehavior.cs
- ParentUndoUnit.cs
- RenderContext.cs
- AutomationProperties.cs
- PointAnimationClockResource.cs
- AnonymousIdentificationModule.cs
- ProxyAssemblyNotLoadedException.cs
- TextServicesPropertyRanges.cs
- WebPartConnectionsDisconnectVerb.cs
- TreeNodeStyle.cs
- AnimationClockResource.cs
- Binding.cs
- Int16KeyFrameCollection.cs
- SqlDataSource.cs
- SqlWorkflowPersistenceService.cs
- ProtocolsConfigurationHandler.cs
- DesignerCatalogPartChrome.cs
- ElementFactory.cs
- SqlDataSourceStatusEventArgs.cs
- RemotingServices.cs
- DataGridViewRowEventArgs.cs
- LabelLiteral.cs
- SchemaCollectionCompiler.cs
- WorkflowRuntimeService.cs
- XmlWriterTraceListener.cs
- TextTreeDeleteContentUndoUnit.cs
- AppSettingsExpressionBuilder.cs
- AnimationClockResource.cs
- CodeGen.cs
- RandomNumberGenerator.cs
- XmlSchemaValidationException.cs
- GrammarBuilderPhrase.cs
- ProfileProvider.cs
- DragStartedEventArgs.cs