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
- EventArgs.cs
- IdentifierCreationService.cs
- SessionPageStateSection.cs
- RemoveFromCollection.cs
- ItemAutomationPeer.cs
- Evidence.cs
- EntityDescriptor.cs
- DefaultExpression.cs
- XmlSequenceWriter.cs
- UnsafeNetInfoNativeMethods.cs
- FixedSchema.cs
- Camera.cs
- BufferedGraphicsContext.cs
- httpapplicationstate.cs
- Int64Storage.cs
- DecoderNLS.cs
- ServiceHttpModule.cs
- MasterPage.cs
- FunctionDetailsReader.cs
- MenuItem.cs
- HttpCachePolicyWrapper.cs
- ManagementBaseObject.cs
- SocketConnection.cs
- Mutex.cs
- StubHelpers.cs
- SmtpNetworkElement.cs
- LostFocusEventManager.cs
- RsaElement.cs
- GorillaCodec.cs
- SupportingTokenParameters.cs
- FreezableOperations.cs
- RequestCacheManager.cs
- CodeCompiler.cs
- TextParagraphCache.cs
- GenericParameterDataContract.cs
- HexParser.cs
- UntypedNullExpression.cs
- XmlNodeComparer.cs
- Directory.cs
- NativeObjectSecurity.cs
- SqlBulkCopyColumnMapping.cs
- TableRow.cs
- ExtendedProtectionPolicy.cs
- WebConfigurationFileMap.cs
- HTMLTextWriter.cs
- SqlWriter.cs
- PtsHost.cs
- CodeGenerator.cs
- ThousandthOfEmRealPoints.cs
- SystemBrushes.cs
- BackgroundFormatInfo.cs
- PagesSection.cs
- DataServiceRequestException.cs
- PropertyGeneratedEventArgs.cs
- OdbcRowUpdatingEvent.cs
- WmlTextViewAdapter.cs
- FlagPanel.cs
- SecurityElement.cs
- ETagAttribute.cs
- XmlSerializableWriter.cs
- SafeArrayTypeMismatchException.cs
- AuthenticateEventArgs.cs
- XmlIlVisitor.cs
- SelectionListComponentEditor.cs
- EntityContainerEmitter.cs
- SequentialUshortCollection.cs
- SqlInternalConnection.cs
- SpellCheck.cs
- XmlSubtreeReader.cs
- StructuredType.cs
- HtmlHistory.cs
- WindowsNonControl.cs
- ProxyManager.cs
- SortQuery.cs
- HttpWebRequestElement.cs
- SimpleWebHandlerParser.cs
- ObjectConverter.cs
- TextLineResult.cs
- ModuleConfigurationInfo.cs
- DesignTimeSiteMapProvider.cs
- filewebresponse.cs
- FixedSOMTableCell.cs
- SystemSounds.cs
- XmlSiteMapProvider.cs
- ContextMenuAutomationPeer.cs
- SiteIdentityPermission.cs
- Constraint.cs
- SqlFormatter.cs
- TransformerTypeCollection.cs
- Animatable.cs
- SharedDp.cs
- ScalarConstant.cs
- SymmetricSecurityProtocol.cs
- AttachedPropertyBrowsableWhenAttributePresentAttribute.cs
- TextSyndicationContent.cs
- ErrorWebPart.cs
- BindableTemplateBuilder.cs
- PolicyFactory.cs
- StatusBar.cs
- SelectionGlyphBase.cs