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
- Thread.cs
- PeerInvitationResponse.cs
- OpCellTreeNode.cs
- AppDomainShutdownMonitor.cs
- CodeBlockBuilder.cs
- TrackingMemoryStreamFactory.cs
- XmlSchemaRedefine.cs
- ManualResetEvent.cs
- ScrollChangedEventArgs.cs
- OLEDB_Util.cs
- GroupItem.cs
- SafeHandle.cs
- XPathQilFactory.cs
- XmlSerializerNamespaces.cs
- Tokenizer.cs
- SerializationTrace.cs
- SplashScreenNativeMethods.cs
- Wildcard.cs
- LongCountAggregationOperator.cs
- OutputCacheProfile.cs
- WorkflowHostingEndpoint.cs
- FocusWithinProperty.cs
- CheckBox.cs
- XslVisitor.cs
- CookieHandler.cs
- NullableDoubleAverageAggregationOperator.cs
- HttpProcessUtility.cs
- VersionPair.cs
- TypeNameConverter.cs
- UIElementCollection.cs
- ClientEventManager.cs
- CustomErrorsSectionWrapper.cs
- ThicknessConverter.cs
- ToolStripPanelRenderEventArgs.cs
- CfgParser.cs
- _SSPIWrapper.cs
- OdbcStatementHandle.cs
- FullTextLine.cs
- PreviewPageInfo.cs
- _NestedMultipleAsyncResult.cs
- ComponentDispatcher.cs
- ExceptionValidationRule.cs
- ISFClipboardData.cs
- XmlSchemaGroupRef.cs
- DataSpaceManager.cs
- Symbol.cs
- SetterBaseCollection.cs
- WebBrowserDesigner.cs
- IntPtr.cs
- Selection.cs
- FileDialogCustomPlace.cs
- ServicePointManager.cs
- _BasicClient.cs
- DataViewManagerListItemTypeDescriptor.cs
- XmlObjectSerializerWriteContextComplexJson.cs
- DataMemberAttribute.cs
- DiscoveryViaBehavior.cs
- SQLDecimal.cs
- UnicodeEncoding.cs
- Overlapped.cs
- EntitySet.cs
- OleDbConnectionFactory.cs
- HtmlInputHidden.cs
- ProviderUtil.cs
- NegotiationTokenAuthenticator.cs
- AnimationTimeline.cs
- GetWinFXPath.cs
- GlobalItem.cs
- IsolatedStoragePermission.cs
- ScrollItemProviderWrapper.cs
- ControlIdConverter.cs
- listitem.cs
- ConcurrentStack.cs
- InkPresenterAutomationPeer.cs
- AsyncOperation.cs
- ListViewGroup.cs
- DataBindingExpressionBuilder.cs
- RequestTimeoutManager.cs
- connectionpool.cs
- HierarchicalDataBoundControlAdapter.cs
- PropertyEmitter.cs
- MatrixValueSerializer.cs
- _ProxyRegBlob.cs
- ClientBuildManager.cs
- WeakReference.cs
- WebPartZoneDesigner.cs
- DataGridViewCellLinkedList.cs
- WebEvents.cs
- ProxyWebPartManager.cs
- System.Data.OracleClient_BID.cs
- Vertex.cs
- CellTreeNodeVisitors.cs
- CodeIdentifier.cs
- WpfPayload.cs
- XmlNamespaceDeclarationsAttribute.cs
- LambdaSerializationException.cs
- loginstatus.cs
- JournalEntryStack.cs
- MetabaseServerConfig.cs
- HtmlHead.cs