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
- _RequestCacheProtocol.cs
- WebPartConnectionsCancelVerb.cs
- DbConnectionPoolGroupProviderInfo.cs
- PrintPreviewDialog.cs
- WebScriptEndpointElement.cs
- ToolboxComponentsCreatingEventArgs.cs
- XsdCachingReader.cs
- DependencyObjectProvider.cs
- UnauthorizedAccessException.cs
- DataControlPagerLinkButton.cs
- EnumerationRangeValidationUtil.cs
- CompressedStack.cs
- CodeGenerator.cs
- DataGridItemEventArgs.cs
- DoubleAnimationBase.cs
- _LocalDataStore.cs
- HttpFileCollection.cs
- MergeFilterQuery.cs
- SQLStringStorage.cs
- COM2IDispatchConverter.cs
- OciLobLocator.cs
- MaskedTextProvider.cs
- SizeAnimationBase.cs
- SchemaType.cs
- HttpModuleCollection.cs
- CodeNamespaceImportCollection.cs
- PathTooLongException.cs
- SmtpTransport.cs
- errorpatternmatcher.cs
- GuidelineCollection.cs
- ModelTreeEnumerator.cs
- Root.cs
- SQLInt32.cs
- AutomationProperties.cs
- CreationContext.cs
- TranslateTransform.cs
- FormsAuthenticationConfiguration.cs
- InstalledFontCollection.cs
- FolderLevelBuildProvider.cs
- MailBnfHelper.cs
- SqlDataSource.cs
- ValidationSummaryDesigner.cs
- CustomCredentialPolicy.cs
- ClassData.cs
- ContentDisposition.cs
- MemoryFailPoint.cs
- HttpListener.cs
- FrameworkElementAutomationPeer.cs
- SchemaTableOptionalColumn.cs
- InfoCardRequestException.cs
- METAHEADER.cs
- CodeSnippetStatement.cs
- ContentValidator.cs
- WSSecurityOneDotZeroReceiveSecurityHeader.cs
- SystemIcmpV4Statistics.cs
- EntityDataSourceSelectedEventArgs.cs
- smtpconnection.cs
- TemplateInstanceAttribute.cs
- Matrix3DValueSerializer.cs
- NullableConverter.cs
- HttpAsyncResult.cs
- FloaterBaseParagraph.cs
- InputQueueChannel.cs
- DodSequenceMerge.cs
- CompiledWorkflowDefinitionContext.cs
- QilName.cs
- TextSegment.cs
- XmlFormatExtensionPointAttribute.cs
- ObjectQueryState.cs
- ValidationPropertyAttribute.cs
- CodeDirectionExpression.cs
- EntityWithChangeTrackerStrategy.cs
- ConfigurationStrings.cs
- HttpRawResponse.cs
- HyperLinkDesigner.cs
- GenericPrincipal.cs
- MediaPlayer.cs
- XmlElement.cs
- WebBrowserBase.cs
- GraphicsState.cs
- TextRunTypographyProperties.cs
- Transform.cs
- LexicalChunk.cs
- Grammar.cs
- CompiledQuery.cs
- WebPartManager.cs
- StopStoryboard.cs
- BStrWrapper.cs
- CodeSubDirectory.cs
- PerformanceCounterPermission.cs
- Html32TextWriter.cs
- DataRowView.cs
- SchemaImporterExtension.cs
- WpfXamlType.cs
- XmlDeclaration.cs
- AuthenticateEventArgs.cs
- TargetPerspective.cs
- CallbackValidator.cs
- MsmqInputSessionChannelListener.cs
- WeakRefEnumerator.cs