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
- XmlSerializationGeneratedCode.cs
- ApplicationInfo.cs
- HtmlControl.cs
- dataobject.cs
- FontStyle.cs
- UriWriter.cs
- FontDialog.cs
- AccessDataSourceDesigner.cs
- InvalidateEvent.cs
- QuaternionRotation3D.cs
- HttpCookiesSection.cs
- QueryStringParameter.cs
- HandleCollector.cs
- CryptographicAttribute.cs
- CodeDomSerializer.cs
- Command.cs
- StyleTypedPropertyAttribute.cs
- UniformGrid.cs
- SafeHandles.cs
- SimpleHandlerFactory.cs
- XmlSerializationWriter.cs
- PropertyManager.cs
- RegisteredHiddenField.cs
- MutexSecurity.cs
- SqlError.cs
- DBSchemaRow.cs
- Region.cs
- CodeCastExpression.cs
- CodeActivity.cs
- SqlBooleanMismatchVisitor.cs
- IEnumerable.cs
- EdmComplexTypeAttribute.cs
- RequestQueryProcessor.cs
- RegexReplacement.cs
- PageVisual.cs
- TreeView.cs
- OperationAbortedException.cs
- TableDetailsCollection.cs
- TemplateControlParser.cs
- SrgsDocumentParser.cs
- XmlSchemaGroup.cs
- NewItemsContextMenuStrip.cs
- MarkedHighlightComponent.cs
- DayRenderEvent.cs
- MetadataPropertyAttribute.cs
- MailBnfHelper.cs
- ComPlusContractBehavior.cs
- VerticalAlignConverter.cs
- TableRowCollection.cs
- CryptoProvider.cs
- PerformanceCounterPermissionAttribute.cs
- Graphics.cs
- ComPlusSynchronizationContext.cs
- OleDbStruct.cs
- MachineKeyValidationConverter.cs
- SemanticTag.cs
- WebPartVerb.cs
- LessThanOrEqual.cs
- DataGridColumnDropSeparator.cs
- RC2CryptoServiceProvider.cs
- BinaryObjectWriter.cs
- TextPointer.cs
- FaultPropagationRecord.cs
- Timer.cs
- control.ime.cs
- SafeMILHandleMemoryPressure.cs
- WhitespaceRuleLookup.cs
- ListDictionary.cs
- ValuePatternIdentifiers.cs
- OdbcParameter.cs
- userdatakeys.cs
- XmlBaseReader.cs
- KeyGestureConverter.cs
- BitmapInitialize.cs
- DateRangeEvent.cs
- CharEntityEncoderFallback.cs
- PropertyGrid.cs
- StyleCollection.cs
- PerformanceCounterPermissionEntry.cs
- Substitution.cs
- CallContext.cs
- ComponentCollection.cs
- EventHandlerList.cs
- ManagementPath.cs
- TextTreeObjectNode.cs
- EventPrivateKey.cs
- PartialCachingControl.cs
- PlatformCulture.cs
- CustomAttributeBuilder.cs
- TheQuery.cs
- ListView.cs
- xamlnodes.cs
- VerificationException.cs
- XmlAnyAttributeAttribute.cs
- Exception.cs
- SqlLiftWhereClauses.cs
- CorrelationScope.cs
- UxThemeWrapper.cs
- ContextBase.cs
- JoinSymbol.cs