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
- GACMembershipCondition.cs
- XmlSchemaAppInfo.cs
- MappingItemCollection.cs
- SafeFileMappingHandle.cs
- ListDataBindEventArgs.cs
- Component.cs
- SqlCharStream.cs
- NameNode.cs
- MsmqUri.cs
- WorkflowMarkupElementEventArgs.cs
- DiscoveryClient.cs
- Util.cs
- QilInvokeEarlyBound.cs
- SubMenuStyleCollection.cs
- SqlUdtInfo.cs
- QuerySettings.cs
- FileDataSourceCache.cs
- XmlUtil.cs
- BinaryParser.cs
- _LazyAsyncResult.cs
- PictureBoxDesigner.cs
- contentDescriptor.cs
- MimeParameter.cs
- XPathScanner.cs
- XPathNodeInfoAtom.cs
- SerializationStore.cs
- GenerateTemporaryTargetAssembly.cs
- OleDbParameterCollection.cs
- ReaderWriterLock.cs
- SQLStringStorage.cs
- FunctionDescription.cs
- DeflateEmulationStream.cs
- PropertyEmitterBase.cs
- HtmlWindowCollection.cs
- AuthenticodeSignatureInformation.cs
- MsmqInputChannelListenerBase.cs
- PointConverter.cs
- DisplayInformation.cs
- Membership.cs
- GatewayDefinition.cs
- HasActivatableWorkflowEvent.cs
- PeerCustomResolverElement.cs
- StringExpressionSet.cs
- safesecurityhelperavalon.cs
- PersonalizableTypeEntry.cs
- FixedBufferAttribute.cs
- InvalidContentTypeException.cs
- CircleHotSpot.cs
- HttpContext.cs
- DiagnosticsElement.cs
- ClusterRegistryConfigurationProvider.cs
- Font.cs
- TypefaceMap.cs
- Parser.cs
- SystemUnicastIPAddressInformation.cs
- CustomPeerResolverService.cs
- SupportedAddressingMode.cs
- TableProvider.cs
- NamespaceDisplay.xaml.cs
- WebPartUtil.cs
- XmlNotation.cs
- Image.cs
- RegisteredExpandoAttribute.cs
- ObjectDataSourceEventArgs.cs
- DesignerEventService.cs
- FastPropertyAccessor.cs
- LocalTransaction.cs
- CodeGen.cs
- ReflectEventDescriptor.cs
- RegionData.cs
- DataGridViewLinkCell.cs
- DbMetaDataColumnNames.cs
- PeerInputChannel.cs
- SettingsBindableAttribute.cs
- ObjectDisposedException.cs
- Executor.cs
- ToolStripButton.cs
- ListBoxItemWrapperAutomationPeer.cs
- DynamicAttribute.cs
- EventSinkHelperWriter.cs
- MembershipUser.cs
- StoryFragments.cs
- SwitchExpression.cs
- BitVector32.cs
- TracePayload.cs
- Publisher.cs
- XmlDownloadManager.cs
- SkewTransform.cs
- PropertyDescriptor.cs
- MulticastNotSupportedException.cs
- TransformerConfigurationWizardBase.cs
- SearchExpression.cs
- ContextMarshalException.cs
- HttpDictionary.cs
- WindowsScrollBar.cs
- DataKeyArray.cs
- TextEditorParagraphs.cs
- TextTreeObjectNode.cs
- ContextMenuStripGroupCollection.cs
- PeerNameRecord.cs