Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- DataListItemEventArgs.cs
- DelegatingTypeDescriptionProvider.cs
- Splitter.cs
- SafeReversePInvokeHandle.cs
- FilterableAttribute.cs
- XmlUnspecifiedAttribute.cs
- EventItfInfo.cs
- FontWeights.cs
- ImageFormat.cs
- SoapExtensionStream.cs
- QuotaThrottle.cs
- DataGridAutomationPeer.cs
- FormatConvertedBitmap.cs
- XmlStringTable.cs
- CacheHelper.cs
- HiddenFieldPageStatePersister.cs
- LogWriteRestartAreaState.cs
- WeakEventTable.cs
- Mapping.cs
- Activity.cs
- FamilyTypefaceCollection.cs
- KeyInstance.cs
- XmlSignificantWhitespace.cs
- EventItfInfo.cs
- ColorContext.cs
- Pick.cs
- FlatButtonAppearance.cs
- DynamicDocumentPaginator.cs
- XPathEmptyIterator.cs
- CustomMenuItemCollection.cs
- CellParaClient.cs
- PeerReferralPolicy.cs
- ResourceFallbackManager.cs
- AbstractDataSvcMapFileLoader.cs
- DataGridDetailsPresenter.cs
- File.cs
- FrameworkElement.cs
- WebPartCancelEventArgs.cs
- basevalidator.cs
- WindowsFont.cs
- ClientWindowsAuthenticationMembershipProvider.cs
- SID.cs
- SmuggledIUnknown.cs
- figurelengthconverter.cs
- TableCellCollection.cs
- HttpListenerRequest.cs
- InheritanceRules.cs
- DataSourceCacheDurationConverter.cs
- InvokeBinder.cs
- KeyboardEventArgs.cs
- TreeChangeInfo.cs
- RemotingAttributes.cs
- WrappedIUnknown.cs
- TextElementEnumerator.cs
- ToolStripPanelDesigner.cs
- Timer.cs
- BidirectionalDictionary.cs
- FilterableAttribute.cs
- CornerRadiusConverter.cs
- OleDbPropertySetGuid.cs
- ProcessThreadCollection.cs
- PageEventArgs.cs
- TemplateManager.cs
- CatalogZoneBase.cs
- QueuePathDialog.cs
- TransformerTypeCollection.cs
- SelectionRange.cs
- ImageDrawing.cs
- LayoutEngine.cs
- ProxyWebPartConnectionCollection.cs
- CertificateManager.cs
- DesignerVerbCollection.cs
- PropertyConverter.cs
- Stack.cs
- OdbcConnectionString.cs
- ImageSource.cs
- TypeRestriction.cs
- DbConnectionClosed.cs
- DataControlFieldHeaderCell.cs
- WebPartAddingEventArgs.cs
- EnvironmentPermission.cs
- SerializationObjectManager.cs
- StaticContext.cs
- CollectionType.cs
- ProfileBuildProvider.cs
- figurelengthconverter.cs
- XmlChoiceIdentifierAttribute.cs
- LoginView.cs
- GenericXmlSecurityToken.cs
- HwndHostAutomationPeer.cs
- BitmapEffectrendercontext.cs
- OpenFileDialog.cs
- PermissionSetTriple.cs
- ColorConverter.cs
- TextStore.cs
- DataObject.cs
- DataTableClearEvent.cs
- GAC.cs
- HashSet.cs
- WebPartDisplayModeEventArgs.cs