Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DLinq / Dlinq / SqlClient / Query / SqlAggregateChecker.cs / 1305376 / 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
- DbParameterCollection.cs
- ResourcePermissionBaseEntry.cs
- LookupBindingPropertiesAttribute.cs
- CommandBinding.cs
- CompressionTransform.cs
- InvariantComparer.cs
- PeerDuplexChannel.cs
- CommonObjectSecurity.cs
- CompilerInfo.cs
- BulletDecorator.cs
- MimePart.cs
- TypeElement.cs
- AssemblyNameUtility.cs
- DataGridViewEditingControlShowingEventArgs.cs
- DomainUpDown.cs
- IISUnsafeMethods.cs
- BaseAsyncResult.cs
- ServiceContractGenerationContext.cs
- TreeNodeConverter.cs
- WebPartTransformerAttribute.cs
- PropertyEntry.cs
- TextEvent.cs
- EntityDataSourceWrapper.cs
- NotCondition.cs
- XamlNamespaceHelper.cs
- Point3DAnimationUsingKeyFrames.cs
- DocumentReference.cs
- Style.cs
- InfoCardSymmetricCrypto.cs
- FormView.cs
- ParallelTimeline.cs
- WindowsListViewItemCheckBox.cs
- DynamicMetaObjectBinder.cs
- ExceptQueryOperator.cs
- VisualTreeHelper.cs
- ScriptMethodAttribute.cs
- ReferencedCategoriesDocument.cs
- ObjectReaderCompiler.cs
- NetworkInformationException.cs
- InputBindingCollection.cs
- Transactions.cs
- ArraySortHelper.cs
- FixedPageStructure.cs
- SerializationHelper.cs
- EntityDataSourceEntityTypeFilterItem.cs
- TypeConverterHelper.cs
- PlatformCulture.cs
- ObjectFullSpanRewriter.cs
- Events.cs
- SafeEventLogWriteHandle.cs
- ConfigXmlComment.cs
- EntityProviderFactory.cs
- SignedPkcs7.cs
- SQLBinary.cs
- TemplatePartAttribute.cs
- DataStreamFromComStream.cs
- SessionStateItemCollection.cs
- TraceListeners.cs
- XmlValidatingReader.cs
- FullTextState.cs
- SessionChannels.cs
- PagePropertiesChangingEventArgs.cs
- Substitution.cs
- CriticalHandle.cs
- DataViewManagerListItemTypeDescriptor.cs
- DesignerCalendarAdapter.cs
- XamlTemplateSerializer.cs
- ValidationManager.cs
- MetaModel.cs
- Operator.cs
- ProcessHostServerConfig.cs
- UTF7Encoding.cs
- WebBrowserHelper.cs
- SecUtil.cs
- altserialization.cs
- WindowsListViewScroll.cs
- CompilerTypeWithParams.cs
- RolePrincipal.cs
- HexParser.cs
- WebZone.cs
- XmlMtomWriter.cs
- ClrProviderManifest.cs
- JournalEntry.cs
- TableRow.cs
- _NetRes.cs
- ReferenceList.cs
- _FtpDataStream.cs
- XmlDataCollection.cs
- Tokenizer.cs
- EdmMember.cs
- PenThreadWorker.cs
- MethodMessage.cs
- UnknownExceptionActionHelper.cs
- NodeLabelEditEvent.cs
- DocumentEventArgs.cs
- MatcherBuilder.cs
- ISO2022Encoding.cs
- XmlAttributes.cs
- SiteMembershipCondition.cs
- PixelFormatConverter.cs