Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- EdmMember.cs
- TdsParserSessionPool.cs
- DataServiceRequestException.cs
- DataGridViewComboBoxEditingControl.cs
- ControlAdapter.cs
- FileVersion.cs
- Section.cs
- ProtectedProviderSettings.cs
- AttachedPropertyInfo.cs
- WebPermission.cs
- TextElement.cs
- ButtonBase.cs
- CreateUserWizardAutoFormat.cs
- PrtCap_Public.cs
- ProxyWebPartManager.cs
- AuthorizationSection.cs
- BrowserCapabilitiesFactoryBase.cs
- InputScope.cs
- Query.cs
- ParallelTimeline.cs
- DivideByZeroException.cs
- CodeVariableReferenceExpression.cs
- SqlDeflator.cs
- ZipIORawDataFileBlock.cs
- SiteMapNodeCollection.cs
- Constants.cs
- ToggleButton.cs
- MarshalByValueComponent.cs
- BitmapEffectState.cs
- RotationValidation.cs
- ObfuscateAssemblyAttribute.cs
- InputLanguageCollection.cs
- LinqDataSourceDeleteEventArgs.cs
- TdsParserSafeHandles.cs
- ReplyChannel.cs
- ObjectPropertyMapping.cs
- CommandLibraryHelper.cs
- BitmapMetadata.cs
- ListManagerBindingsCollection.cs
- PeerSecurityManager.cs
- AutomationTextAttribute.cs
- DragCompletedEventArgs.cs
- PersistenceMetadataNamespace.cs
- SplitContainer.cs
- AnnotationAuthorChangedEventArgs.cs
- JsonEnumDataContract.cs
- DecimalFormatter.cs
- CodeFieldReferenceExpression.cs
- FillRuleValidation.cs
- CalendarDayButton.cs
- SafeNativeMethodsMilCoreApi.cs
- designeractionbehavior.cs
- BaseUriHelper.cs
- DBCommand.cs
- ObjectAssociationEndMapping.cs
- OAVariantLib.cs
- CodeIndexerExpression.cs
- ImageSourceConverter.cs
- IOException.cs
- ExceptionUtil.cs
- PersonalizationProvider.cs
- PaintEvent.cs
- GridEntryCollection.cs
- AdRotatorDesigner.cs
- DotNetATv1WindowsLogEntrySerializer.cs
- BrushMappingModeValidation.cs
- CharacterMetricsDictionary.cs
- WebBaseEventKeyComparer.cs
- DataBindEngine.cs
- ParsedAttributeCollection.cs
- SortFieldComparer.cs
- BitmapFrameDecode.cs
- TraceProvider.cs
- PerformanceCounterPermissionAttribute.cs
- ToolBarButtonClickEvent.cs
- ScrollPattern.cs
- ServiceModelInstallComponent.cs
- BamlTreeNode.cs
- XmlStreamStore.cs
- ClientScriptManagerWrapper.cs
- DataGridViewHeaderCell.cs
- SqlXml.cs
- DataList.cs
- InputElement.cs
- NamedPipeTransportSecurityElement.cs
- XmlSchemaRedefine.cs
- SparseMemoryStream.cs
- ControlBuilder.cs
- SmiContext.cs
- KeyTimeConverter.cs
- TimeoutValidationAttribute.cs
- SharedDp.cs
- GeneralTransform3DGroup.cs
- PictureBox.cs
- ConfigurationStrings.cs
- Range.cs
- InstanceCreationEditor.cs
- SafeThemeHandle.cs
- StreamingContext.cs
- WaitForChangedResult.cs