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
- DataGridViewAccessibleObject.cs
- SQLInt64.cs
- FormViewInsertEventArgs.cs
- ConfigurationProperty.cs
- CommandArguments.cs
- RemoteWebConfigurationHostServer.cs
- ResourcePool.cs
- DesignerImageAdapter.cs
- WizardForm.cs
- Table.cs
- RemoteWebConfigurationHostStream.cs
- HtmlMeta.cs
- DataGridViewDataErrorEventArgs.cs
- SqlFacetAttribute.cs
- OdbcConnectionFactory.cs
- AdornerLayer.cs
- InternalEnumValidator.cs
- XomlSerializationHelpers.cs
- ADConnectionHelper.cs
- PropertyTabChangedEvent.cs
- ConditionalBranch.cs
- Model3DCollection.cs
- CompilerError.cs
- DoubleLinkListEnumerator.cs
- FacetValues.cs
- OleCmdHelper.cs
- lengthconverter.cs
- FileLoadException.cs
- Panel.cs
- NavigationProperty.cs
- dbenumerator.cs
- HtmlTableRow.cs
- BitmapSource.cs
- precedingquery.cs
- LocatorPartList.cs
- ToolConsole.cs
- HttpGetProtocolImporter.cs
- ProviderCollection.cs
- NetworkAddressChange.cs
- ClientRolePrincipal.cs
- ControlLocalizer.cs
- SrgsToken.cs
- SessionEndingEventArgs.cs
- PageAsyncTaskManager.cs
- _TimerThread.cs
- AnnotationAuthorChangedEventArgs.cs
- VectorAnimation.cs
- NetworkCredential.cs
- EncoderBestFitFallback.cs
- PersonalizableTypeEntry.cs
- EventData.cs
- MetabaseSettingsIis7.cs
- DocumentGrid.cs
- EdmValidator.cs
- NetPeerTcpBindingElement.cs
- FileDialogCustomPlace.cs
- WebBrowserBase.cs
- login.cs
- DataGridViewSelectedRowCollection.cs
- SpellerHighlightLayer.cs
- TextBoxBase.cs
- DragCompletedEventArgs.cs
- BitSet.cs
- DataGridColumnsPage.cs
- DesignOnlyAttribute.cs
- ErrorFormatter.cs
- SqlAliaser.cs
- FontCollection.cs
- TypeGeneratedEventArgs.cs
- GeneralTransform3DCollection.cs
- AdornerLayer.cs
- Label.cs
- ResourceAttributes.cs
- MethodBody.cs
- DeviceContext.cs
- CapacityStreamGeometryContext.cs
- MultilineStringEditor.cs
- SqlTriggerAttribute.cs
- Viewport3DAutomationPeer.cs
- XmlSerializerFactory.cs
- RTLAwareMessageBox.cs
- MailMessage.cs
- TemplateBuilder.cs
- AutomationPattern.cs
- HTMLTagNameToTypeMapper.cs
- ObjectCache.cs
- MatrixAnimationBase.cs
- FontWeightConverter.cs
- MailSettingsSection.cs
- MaterialCollection.cs
- ContentIterators.cs
- BindingContext.cs
- EdmEntityTypeAttribute.cs
- BaseParser.cs
- HttpDictionary.cs
- Globals.cs
- ClassHandlersStore.cs
- NavigatorInput.cs
- CheckBox.cs
- PerformanceCounter.cs