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
- ModuleConfigurationInfo.cs
- GreenMethods.cs
- DesignerSerializerAttribute.cs
- ResourceDisplayNameAttribute.cs
- SerializationAttributes.cs
- ToolboxItemImageConverter.cs
- precedingsibling.cs
- UpdateExpressionVisitor.cs
- ListDictionary.cs
- EventListenerClientSide.cs
- DiffuseMaterial.cs
- ProxyWebPartConnectionCollection.cs
- CfgSemanticTag.cs
- xamlnodes.cs
- XmlSchemaComplexContentRestriction.cs
- SerialStream.cs
- FormViewRow.cs
- EntityTemplateFactory.cs
- WpfPayload.cs
- RuntimeResourceSet.cs
- RecognizedPhrase.cs
- OutputWindow.cs
- StaticFileHandler.cs
- StateManager.cs
- TemplateControl.cs
- DocumentSequenceHighlightLayer.cs
- SHA512CryptoServiceProvider.cs
- HelpKeywordAttribute.cs
- AutoResetEvent.cs
- ProjectionCamera.cs
- WebPartTracker.cs
- OdbcException.cs
- HwndSource.cs
- BitmapEffectDrawingContent.cs
- ModuleConfigurationInfo.cs
- DoubleLink.cs
- DecimalAnimationUsingKeyFrames.cs
- RtType.cs
- UriExt.cs
- XmlSchemaExternal.cs
- SizeFConverter.cs
- FileBasedResourceGroveler.cs
- SqlConnectionStringBuilder.cs
- ControlAdapter.cs
- HttpResponseBase.cs
- ControlUtil.cs
- SafeRegistryHandle.cs
- AsymmetricKeyExchangeFormatter.cs
- COAUTHINFO.cs
- ColorBuilder.cs
- DoubleAnimationClockResource.cs
- KeyboardInputProviderAcquireFocusEventArgs.cs
- DSASignatureDeformatter.cs
- EncoderParameter.cs
- OdbcPermission.cs
- SamlAdvice.cs
- DataGridViewRowErrorTextNeededEventArgs.cs
- XpsFixedDocumentReaderWriter.cs
- FontStyle.cs
- QueryCacheEntry.cs
- ClonableStack.cs
- DoubleCollection.cs
- ExpressionQuoter.cs
- PriorityQueue.cs
- DataGridViewColumnEventArgs.cs
- EventManager.cs
- ChangeConflicts.cs
- SerialReceived.cs
- CrossContextChannel.cs
- Int16KeyFrameCollection.cs
- HttpCacheParams.cs
- Membership.cs
- MessageHeaderException.cs
- HostExecutionContextManager.cs
- ObjectTag.cs
- TaskFormBase.cs
- Predicate.cs
- IntSecurity.cs
- EntityCollection.cs
- RegexCompilationInfo.cs
- DependencyObject.cs
- NotFiniteNumberException.cs
- ByeOperationAsyncResult.cs
- StaticFileHandler.cs
- ColumnMapProcessor.cs
- RoleBoolean.cs
- ComPlusDiagnosticTraceSchemas.cs
- TdsParameterSetter.cs
- DesignerTransactionCloseEvent.cs
- IfAction.cs
- TextTreeInsertElementUndoUnit.cs
- NameTable.cs
- UserPreferenceChangingEventArgs.cs
- QueryStack.cs
- CheckBoxFlatAdapter.cs
- WeakEventManager.cs
- XmlSchemaImporter.cs
- FixedFindEngine.cs
- WhitespaceRuleLookup.cs
- DataGridViewComboBoxCell.cs