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
- WindowCollection.cs
- SubMenuStyleCollection.cs
- NamespaceEmitter.cs
- Zone.cs
- Reference.cs
- AdvancedBindingEditor.cs
- TagElement.cs
- SecurityDescriptor.cs
- MenuItemStyleCollection.cs
- DesignerEventService.cs
- PageEventArgs.cs
- FilterableAttribute.cs
- UnsafeCollabNativeMethods.cs
- sqlstateclientmanager.cs
- DeploymentExceptionMapper.cs
- RemoteX509AsymmetricSecurityKey.cs
- MediaScriptCommandRoutedEventArgs.cs
- ScrollItemPatternIdentifiers.cs
- ClientType.cs
- CurrencyWrapper.cs
- LogReservationCollection.cs
- TextBoxBase.cs
- PopupRootAutomationPeer.cs
- DataSetMappper.cs
- TrustManagerPromptUI.cs
- NativeMethods.cs
- ExecutedRoutedEventArgs.cs
- Utils.cs
- DBSchemaRow.cs
- CryptoConfig.cs
- AsyncContentLoadedEventArgs.cs
- PropertyDescriptor.cs
- XmlSequenceWriter.cs
- ImportRequest.cs
- AttributeQuery.cs
- TimeSpanFormat.cs
- HandlerElementCollection.cs
- DoubleConverter.cs
- NoneExcludedImageIndexConverter.cs
- SpeechAudioFormatInfo.cs
- TabletCollection.cs
- XslVisitor.cs
- TableFieldsEditor.cs
- ProtectedProviderSettings.cs
- TextElement.cs
- ContextDataSourceView.cs
- KnowledgeBase.cs
- DragStartedEventArgs.cs
- StylusPointProperties.cs
- CodeDOMUtility.cs
- ChildrenQuery.cs
- HashCryptoHandle.cs
- SeverityFilter.cs
- IDispatchConstantAttribute.cs
- WorkflowExecutor.cs
- DataSourceDescriptorCollection.cs
- DbSetClause.cs
- CompressedStack.cs
- DuplicateWaitObjectException.cs
- FieldNameLookup.cs
- WebBrowserHelper.cs
- DetailsViewCommandEventArgs.cs
- MatcherBuilder.cs
- XmlCountingReader.cs
- BinHexEncoder.cs
- ToolStripProgressBar.cs
- GroupQuery.cs
- RegexCode.cs
- ContentIterators.cs
- BaseTemplateCodeDomTreeGenerator.cs
- SmtpReplyReaderFactory.cs
- SecurityContext.cs
- assemblycache.cs
- ContentValidator.cs
- NavigationPropertyEmitter.cs
- LinkClickEvent.cs
- TextRangeEditTables.cs
- ConnectionManagementElementCollection.cs
- Receive.cs
- ProfilePropertyNameValidator.cs
- _Semaphore.cs
- RelatedPropertyManager.cs
- CreateUserWizardStep.cs
- XmlObjectSerializerReadContextComplexJson.cs
- DurableInstanceProvider.cs
- XmlnsDictionary.cs
- TaskExceptionHolder.cs
- SymbolDocumentInfo.cs
- LicenseProviderAttribute.cs
- BitmapEffect.cs
- ProcessThreadCollection.cs
- ScriptReferenceEventArgs.cs
- MetaChildrenColumn.cs
- ConnectionOrientedTransportElement.cs
- XmlQualifiedName.cs
- BitmapMetadataBlob.cs
- JsonGlobals.cs
- SoapFaultCodes.cs
- TextShapeableCharacters.cs
- BinaryObjectWriter.cs