Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- InternalEnumValidator.cs
- OutOfMemoryException.cs
- MessageQueueTransaction.cs
- WebDisplayNameAttribute.cs
- CacheVirtualItemsEvent.cs
- RMPublishingDialog.cs
- InitializationEventAttribute.cs
- Renderer.cs
- DataGridColumnHeadersPresenter.cs
- AccessControlEntry.cs
- BuilderElements.cs
- Blend.cs
- HttpRuntimeSection.cs
- MasterPageBuildProvider.cs
- MemberRelationshipService.cs
- SuppressMergeCheckAttribute.cs
- ProjectionPathSegment.cs
- UshortList2.cs
- ToolTipAutomationPeer.cs
- AsyncOperationContext.cs
- _ConnectionGroup.cs
- DrawingBrush.cs
- OleDbReferenceCollection.cs
- SocketInformation.cs
- MatrixValueSerializer.cs
- ComponentDispatcherThread.cs
- Panel.cs
- EntitySqlQueryBuilder.cs
- BasePattern.cs
- MetadataArtifactLoaderCompositeResource.cs
- VarRemapper.cs
- OdbcRowUpdatingEvent.cs
- ToolStripDropDown.cs
- WebServiceEnumData.cs
- ArraySegment.cs
- MethodBuilderInstantiation.cs
- Double.cs
- TextRangeProviderWrapper.cs
- TemplatePropertyEntry.cs
- Util.cs
- Subordinate.cs
- HtmlEncodedRawTextWriter.cs
- UnlockCardRequest.cs
- PropertySet.cs
- PersonalizationAdministration.cs
- ImageSource.cs
- XmlNamespaceMappingCollection.cs
- XslCompiledTransform.cs
- HashCodeCombiner.cs
- OrderablePartitioner.cs
- LoadedOrUnloadedOperation.cs
- DecoderFallbackWithFailureFlag.cs
- GridLengthConverter.cs
- WinInetCache.cs
- ReadWriteObjectLock.cs
- SecurityHeader.cs
- CustomAttributeSerializer.cs
- ProxyWebPartConnectionCollection.cs
- EmptyReadOnlyDictionaryInternal.cs
- CombinedGeometry.cs
- WorkflowCreationContext.cs
- processwaithandle.cs
- CfgParser.cs
- ScrollBarRenderer.cs
- CommandLibraryHelper.cs
- EnumValAlphaComparer.cs
- sqlcontext.cs
- _FtpControlStream.cs
- SoapCodeExporter.cs
- TypeTypeConverter.cs
- GroupBoxAutomationPeer.cs
- StringReader.cs
- Column.cs
- OleDbReferenceCollection.cs
- TextLineBreak.cs
- DataGridLinkButton.cs
- WpfWebRequestHelper.cs
- TextureBrush.cs
- ToolStripItemCollection.cs
- EmissiveMaterial.cs
- ResourceSetExpression.cs
- FormViewCommandEventArgs.cs
- HttpClientProtocol.cs
- PassportAuthenticationEventArgs.cs
- Composition.cs
- StylusPointDescription.cs
- IdentityNotMappedException.cs
- TripleDES.cs
- RegisteredExpandoAttribute.cs
- CharacterHit.cs
- DbReferenceCollection.cs
- SqlLiftWhereClauses.cs
- XmlDocumentFieldSchema.cs
- AliasGenerator.cs
- ComNativeDescriptor.cs
- OutOfMemoryException.cs
- SmtpNtlmAuthenticationModule.cs
- PrintEvent.cs
- UnsafeNativeMethods.cs
- GetReadStreamResult.cs