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
- BehaviorEditorPart.cs
- RemoteWebConfigurationHostServer.cs
- Tuple.cs
- XmlSchemaComplexContentRestriction.cs
- DurableServiceAttribute.cs
- QilDataSource.cs
- oledbmetadatacolumnnames.cs
- XmlSchemaDatatype.cs
- RelationshipNavigation.cs
- SizeIndependentAnimationStorage.cs
- WebPartHeaderCloseVerb.cs
- DataListItem.cs
- SystemIcmpV6Statistics.cs
- XmlSchemaAll.cs
- Gdiplus.cs
- Atom10FormatterFactory.cs
- InputEventArgs.cs
- PenThreadPool.cs
- BasicCommandTreeVisitor.cs
- CollectionBuilder.cs
- SQLDecimalStorage.cs
- WeakReference.cs
- PrtCap_Builder.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- SymLanguageType.cs
- TaskExtensions.cs
- WebScriptMetadataFormatter.cs
- WeakRefEnumerator.cs
- Update.cs
- PerformanceCounterCategory.cs
- PermissionToken.cs
- ServiceConfigurationTraceRecord.cs
- ButtonBase.cs
- ResourceDisplayNameAttribute.cs
- EnumerableCollectionView.cs
- RuntimeVariableList.cs
- VectorCollectionConverter.cs
- DeflateStreamAsyncResult.cs
- PersistenceTypeAttribute.cs
- Int16Converter.cs
- DateTimeValueSerializer.cs
- HttpProfileBase.cs
- XhtmlBasicPhoneCallAdapter.cs
- ExpressionBuilder.cs
- FilterRepeater.cs
- Stream.cs
- ToolStripSplitStackLayout.cs
- Dynamic.cs
- Rect.cs
- RootAction.cs
- RubberbandSelector.cs
- HtmlTextArea.cs
- SystemSounds.cs
- XmlSecureResolver.cs
- WebPartCatalogAddVerb.cs
- EntityModelSchemaGenerator.cs
- ChtmlTextWriter.cs
- Stream.cs
- ClientSponsor.cs
- ACL.cs
- followingsibling.cs
- ConnectionConsumerAttribute.cs
- StringUtil.cs
- SafeProcessHandle.cs
- GradientStop.cs
- OrderedDictionaryStateHelper.cs
- CodeMemberProperty.cs
- XmlDataDocument.cs
- ZipIOCentralDirectoryFileHeader.cs
- FragmentQuery.cs
- ComponentDispatcherThread.cs
- CommandManager.cs
- WpfMemberInvoker.cs
- ObjectConverter.cs
- UnicastIPAddressInformationCollection.cs
- TableItemProviderWrapper.cs
- D3DImage.cs
- DiscardableAttribute.cs
- VarRemapper.cs
- BitmapCodecInfo.cs
- TextCollapsingProperties.cs
- BindingCollection.cs
- LayoutExceptionEventArgs.cs
- Cloud.cs
- ConfigXmlDocument.cs
- CodeStatement.cs
- SerialPinChanges.cs
- cookie.cs
- PeerApplication.cs
- MenuItemBinding.cs
- FloatUtil.cs
- HeaderedItemsControl.cs
- PixelFormats.cs
- mactripleDES.cs
- MessageSmuggler.cs
- StrokeNodeData.cs
- HttpServerVarsCollection.cs
- XPathNodeList.cs
- XmlUtil.cs
- TransactionalPackage.cs