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
- MimePart.cs
- BigInt.cs
- XmlCustomFormatter.cs
- UpDownBase.cs
- TabControl.cs
- OrderedDictionary.cs
- ProfileBuildProvider.cs
- ConnectionPoolRegistry.cs
- UITypeEditor.cs
- ToolboxComponentsCreatingEventArgs.cs
- RequestTimeoutManager.cs
- BooleanAnimationUsingKeyFrames.cs
- WebZoneDesigner.cs
- MissingManifestResourceException.cs
- DocumentGridPage.cs
- PolicyLevel.cs
- ConfigurationValue.cs
- FontNamesConverter.cs
- HatchBrush.cs
- DispatcherProcessingDisabled.cs
- ListViewTableCell.cs
- SqlBuilder.cs
- FamilyTypefaceCollection.cs
- LocalizeDesigner.cs
- SelfSignedCertificate.cs
- SqlDeflator.cs
- Pointer.cs
- RC2CryptoServiceProvider.cs
- ResourceDictionary.cs
- WorkflowOperationFault.cs
- X509CertificateEndpointIdentity.cs
- AttachmentCollection.cs
- PrintController.cs
- Profiler.cs
- ParameterModifier.cs
- ContentPlaceHolderDesigner.cs
- RootProjectionNode.cs
- ActiveXSite.cs
- StyleSheetComponentEditor.cs
- GeometryHitTestParameters.cs
- TrackingWorkflowEventArgs.cs
- DelegatingMessage.cs
- ImageBrush.cs
- PeerReferralPolicy.cs
- QilParameter.cs
- FixedStringLookup.cs
- DataGridViewTextBoxEditingControl.cs
- ScriptControlDescriptor.cs
- ScrollContentPresenter.cs
- ModelFunctionTypeElement.cs
- DesignerFrame.cs
- MaterialGroup.cs
- CapabilitiesRule.cs
- DtcInterfaces.cs
- SpeechRecognizer.cs
- ToolStripItemClickedEventArgs.cs
- MenuItemBindingCollection.cs
- FormViewRow.cs
- CompiledRegexRunner.cs
- ReferencedCollectionType.cs
- AnyAllSearchOperator.cs
- StaticResourceExtension.cs
- ItemCollection.cs
- MailWebEventProvider.cs
- InstanceStore.cs
- MessageSecurityException.cs
- OleDbReferenceCollection.cs
- OracleTimeSpan.cs
- UriParserTemplates.cs
- MissingMemberException.cs
- DesignerActionUIService.cs
- WebPageTraceListener.cs
- Msec.cs
- OdbcFactory.cs
- CalendarDataBindingHandler.cs
- ViewGenResults.cs
- Paragraph.cs
- CollectionBuilder.cs
- RequestResizeEvent.cs
- CryptographicAttribute.cs
- XmlNamespaceDeclarationsAttribute.cs
- CertificateManager.cs
- Command.cs
- ConfigurationSectionHelper.cs
- LoginNameDesigner.cs
- TextTreeInsertUndoUnit.cs
- SqlFactory.cs
- SourceSwitch.cs
- MergeFailedEvent.cs
- PointHitTestParameters.cs
- HttpListenerPrefixCollection.cs
- CryptoProvider.cs
- AssemblyInfo.cs
- TimeSpanConverter.cs
- ExceptionUtil.cs
- LinearKeyFrames.cs
- ResourcesChangeInfo.cs
- SimpleMailWebEventProvider.cs
- XmlDocument.cs
- Int32Storage.cs