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
- EllipseGeometry.cs
- DiscoveryClientProtocol.cs
- ToolStripStatusLabel.cs
- XpsFont.cs
- NativeMethodsCLR.cs
- Form.cs
- CallbackValidatorAttribute.cs
- CheckBoxDesigner.cs
- PnrpPeerResolverElement.cs
- Semaphore.cs
- EntityException.cs
- CodeDOMProvider.cs
- ClientTargetSection.cs
- ParentUndoUnit.cs
- X509CertificateValidator.cs
- TextServicesHost.cs
- DocumentScope.cs
- DataFieldCollectionEditor.cs
- DataServiceRequest.cs
- StylusLogic.cs
- RoleServiceManager.cs
- RewritingProcessor.cs
- XsltInput.cs
- SourceItem.cs
- TrustLevelCollection.cs
- TextEditorSelection.cs
- Int16KeyFrameCollection.cs
- AssemblySettingAttributes.cs
- SplayTreeNode.cs
- EdmError.cs
- ReversePositionQuery.cs
- HtmlMeta.cs
- BorderGapMaskConverter.cs
- BaseTemplateParser.cs
- GenericPrincipal.cs
- SystemTcpStatistics.cs
- NameNode.cs
- HMACSHA384.cs
- OperandQuery.cs
- ScriptingRoleServiceSection.cs
- _NetRes.cs
- XmlChoiceIdentifierAttribute.cs
- DiagnosticTraceSource.cs
- SchemaContext.cs
- Walker.cs
- DataGridViewDataConnection.cs
- ScrollChrome.cs
- CurrentChangedEventManager.cs
- SynthesizerStateChangedEventArgs.cs
- CodeAttributeArgument.cs
- Int64Storage.cs
- TableLayoutColumnStyleCollection.cs
- PolicyLevel.cs
- TypedElement.cs
- _DomainName.cs
- MessageQueuePermissionAttribute.cs
- ValidateNames.cs
- UncommonField.cs
- TemplatedAdorner.cs
- WebPartDescription.cs
- ApplicationSecurityInfo.cs
- PeerMessageDispatcher.cs
- X509WindowsSecurityToken.cs
- TemplateManager.cs
- HttpConfigurationSystem.cs
- EventData.cs
- HelloMessage11.cs
- CounterNameConverter.cs
- TextBoxAutoCompleteSourceConverter.cs
- CompositeKey.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- DesignerImageAdapter.cs
- LineServices.cs
- ToolStripContentPanel.cs
- WindowPattern.cs
- CngAlgorithm.cs
- BitmapEffectState.cs
- UnknownBitmapDecoder.cs
- XmlWriterSettings.cs
- Constants.cs
- DataBoundControl.cs
- ObjectToIdCache.cs
- MarshalByRefObject.cs
- Task.cs
- SerialErrors.cs
- WindowAutomationPeer.cs
- ListViewItemMouseHoverEvent.cs
- ActiveDesignSurfaceEvent.cs
- PlatformCulture.cs
- TypefaceMap.cs
- PersonalizationState.cs
- SymLanguageVendor.cs
- IndexedEnumerable.cs
- TextElementCollection.cs
- ProfileService.cs
- DesignerActionVerbItem.cs
- XmlToDatasetMap.cs
- FloatAverageAggregationOperator.cs
- AvTraceFormat.cs
- HelpInfo.cs