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
- DataTemplateSelector.cs
- UriTemplateLiteralPathSegment.cs
- XmlCollation.cs
- TimeZone.cs
- Metafile.cs
- Descriptor.cs
- GridViewRowCollection.cs
- SafeNativeMethodsCLR.cs
- LocalValueEnumerator.cs
- WebPartManagerInternals.cs
- OdbcStatementHandle.cs
- ListViewTableCell.cs
- IListConverters.cs
- BitmapEffectCollection.cs
- X509InitiatorCertificateClientElement.cs
- DebuggerAttributes.cs
- XPathSingletonIterator.cs
- bindurihelper.cs
- ResourceReferenceExpressionConverter.cs
- DoubleCollectionValueSerializer.cs
- RowsCopiedEventArgs.cs
- CodeExpressionStatement.cs
- AppDomain.cs
- MetadataFile.cs
- AsyncOperation.cs
- SecurityTokenResolver.cs
- Compilation.cs
- DataDocumentXPathNavigator.cs
- InputBindingCollection.cs
- Calendar.cs
- SQLMoney.cs
- TextStore.cs
- SqlInternalConnectionTds.cs
- DynamicScriptObject.cs
- DependencyProperty.cs
- LocalizableResourceBuilder.cs
- WebPartTracker.cs
- Clipboard.cs
- PersonalizationStateInfoCollection.cs
- StateWorkerRequest.cs
- XamlParser.cs
- PolicyFactory.cs
- SwitchAttribute.cs
- ProfileParameter.cs
- SpeechSynthesizer.cs
- TransactionProtocolConverter.cs
- SlotInfo.cs
- PasswordBox.cs
- DiscoveryClientReferences.cs
- WsdlParser.cs
- DesignerDataSourceView.cs
- FlowLayoutPanelDesigner.cs
- PermissionRequestEvidence.cs
- ConfigurationStrings.cs
- ToolStripSystemRenderer.cs
- LoggedException.cs
- UIntPtr.cs
- BaseCollection.cs
- SelectedCellsCollection.cs
- TypeInitializationException.cs
- _ScatterGatherBuffers.cs
- PropertyManager.cs
- ObjectTypeMapping.cs
- UserPersonalizationStateInfo.cs
- MemberRelationshipService.cs
- CannotUnloadAppDomainException.cs
- Char.cs
- PersonalizationStateQuery.cs
- FixedSOMPageConstructor.cs
- TextHidden.cs
- FontStyle.cs
- DataGridHeaderBorder.cs
- AdjustableArrowCap.cs
- TaiwanLunisolarCalendar.cs
- WebPartConnectionCollection.cs
- CallbackValidatorAttribute.cs
- Clipboard.cs
- XmlSchemaSubstitutionGroup.cs
- Delegate.cs
- GenericEnumerator.cs
- TranslateTransform.cs
- TextParagraphView.cs
- ObjectTag.cs
- Int16Storage.cs
- SqlAliasesReferenced.cs
- MemoryPressure.cs
- SqlNotificationRequest.cs
- GuidConverter.cs
- PropertyToken.cs
- dataprotectionpermissionattribute.cs
- _SSPISessionCache.cs
- XmlSchemaComplexContentExtension.cs
- ILGenerator.cs
- QuaternionRotation3D.cs
- Module.cs
- EventsTab.cs
- SchemaImporterExtensionsSection.cs
- ClientRuntimeConfig.cs
- DataGridColumnHeaderAutomationPeer.cs
- DataGridItemEventArgs.cs