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
- PrintController.cs
- Rect3DConverter.cs
- SymbolPair.cs
- ValidatedControlConverter.cs
- ControlParameter.cs
- Rotation3DKeyFrameCollection.cs
- QuaternionAnimationUsingKeyFrames.cs
- ImageFormat.cs
- UniqueConstraint.cs
- SplitterEvent.cs
- XmlArrayItemAttributes.cs
- Wizard.cs
- ZeroOpNode.cs
- XPathPatternBuilder.cs
- RepeaterCommandEventArgs.cs
- XomlCompilerResults.cs
- SoapIgnoreAttribute.cs
- Panel.cs
- Rect3D.cs
- Pens.cs
- CatalogPartCollection.cs
- EnumBuilder.cs
- DataGridParentRows.cs
- CreateUserWizardStep.cs
- RecipientIdentity.cs
- SqlNodeAnnotation.cs
- VectorAnimationUsingKeyFrames.cs
- XmlValidatingReaderImpl.cs
- EditableRegion.cs
- BindingList.cs
- ResourceReferenceExpressionConverter.cs
- DefaultPropertyAttribute.cs
- DockPanel.cs
- UnicastIPAddressInformationCollection.cs
- XmlDocumentViewSchema.cs
- ManagementException.cs
- ErrorView.xaml.cs
- ActiveXContainer.cs
- Drawing.cs
- SecurityException.cs
- WindowsListViewItemStartMenu.cs
- QueryCacheKey.cs
- GlyphsSerializer.cs
- SocketAddress.cs
- NonBatchDirectoryCompiler.cs
- HttpCacheParams.cs
- SqlDataAdapter.cs
- CheckoutException.cs
- LocalClientSecuritySettings.cs
- DataGridViewCellStyle.cs
- SqlDataSourceFilteringEventArgs.cs
- ApplicationServiceManager.cs
- CodeGotoStatement.cs
- SingleAnimation.cs
- XmlSerializationWriter.cs
- PropertyDescriptorGridEntry.cs
- DecoderNLS.cs
- SqlFlattener.cs
- OutOfProcStateClientManager.cs
- ParameterModifier.cs
- CheckBoxPopupAdapter.cs
- Pair.cs
- AnimationException.cs
- SafeSecurityHandles.cs
- GeneralTransform3D.cs
- StreamGeometryContext.cs
- SpeakCompletedEventArgs.cs
- ContentPresenter.cs
- TableRow.cs
- AppDomainProtocolHandler.cs
- TextTreeObjectNode.cs
- StringBuilder.cs
- SafeRightsManagementSessionHandle.cs
- ControlCodeDomSerializer.cs
- SocketAddress.cs
- AccessKeyManager.cs
- XmlWhitespace.cs
- QilGeneratorEnv.cs
- CollectionViewGroupInternal.cs
- TextParentUndoUnit.cs
- ThemeableAttribute.cs
- OdbcEnvironmentHandle.cs
- WebPartZoneCollection.cs
- SqlProfileProvider.cs
- DataTableMappingCollection.cs
- SchemeSettingElement.cs
- ScrollData.cs
- UtilityExtension.cs
- StateMachine.cs
- ScaleTransform.cs
- BroadcastEventHelper.cs
- WindowsRichEditRange.cs
- ForAllOperator.cs
- MasterPageBuildProvider.cs
- ErrorHandler.cs
- FusionWrap.cs
- EdmSchemaAttribute.cs
- CounterCreationData.cs
- MetadataPropertyvalue.cs
- InternalControlCollection.cs