Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DLinq / Dlinq / SqlClient / Query / SqlAggregateChecker.cs / 1305376 / 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
- FileNotFoundException.cs
- ClientData.cs
- XPathQilFactory.cs
- PartialTrustVisibleAssembliesSection.cs
- ApplicationId.cs
- SafeNativeMethods.cs
- PaperSource.cs
- OpenTypeLayout.cs
- HistoryEventArgs.cs
- XmlQueryType.cs
- DataSourceXmlSerializer.cs
- sqlmetadatafactory.cs
- SqlTriggerAttribute.cs
- TextBox.cs
- Quaternion.cs
- OleDbPropertySetGuid.cs
- SoapEnumAttribute.cs
- ProfileSection.cs
- CqlLexer.cs
- SourceInterpreter.cs
- TraceSource.cs
- MergeLocalizationDirectives.cs
- DataGridViewComboBoxCell.cs
- IgnoreDeviceFilterElementCollection.cs
- Quad.cs
- AutomationPropertyChangedEventArgs.cs
- Metadata.cs
- XmlWriter.cs
- GridViewItemAutomationPeer.cs
- DesignerTransaction.cs
- XmlDictionaryReaderQuotas.cs
- ModelTreeEnumerator.cs
- CodeDomConfigurationHandler.cs
- SortableBindingList.cs
- EncoderReplacementFallback.cs
- Property.cs
- CodePageEncoding.cs
- StaticSiteMapProvider.cs
- LinqDataSourceValidationException.cs
- ChangePassword.cs
- RIPEMD160.cs
- WebZone.cs
- GeometryGroup.cs
- CallSiteOps.cs
- Point3DAnimation.cs
- RegexRunner.cs
- DeferredReference.cs
- PreviewKeyDownEventArgs.cs
- SQLBinary.cs
- TypeDelegator.cs
- FixedHyperLink.cs
- SQLDecimalStorage.cs
- HyperLinkColumn.cs
- XpsPartBase.cs
- PowerModeChangedEventArgs.cs
- xmlformatgeneratorstatics.cs
- ControlPersister.cs
- CssTextWriter.cs
- TextElementEnumerator.cs
- WebPartChrome.cs
- TemplateEditingVerb.cs
- InstancePersistenceCommandException.cs
- CachedTypeface.cs
- VarInfo.cs
- Constant.cs
- XmlHierarchyData.cs
- EntityDataSourceWrapper.cs
- SrgsElementList.cs
- Hex.cs
- FontInfo.cs
- MetafileHeaderWmf.cs
- SqlDataSource.cs
- PackageDocument.cs
- ClipboardProcessor.cs
- LayoutDump.cs
- CodeTypeOfExpression.cs
- SchemaImporterExtensionElementCollection.cs
- InheritanceContextChangedEventManager.cs
- DataTemplate.cs
- ArraySegment.cs
- OleDbReferenceCollection.cs
- PointHitTestResult.cs
- RefreshEventArgs.cs
- XpsFont.cs
- PolicyException.cs
- NativeBuffer.cs
- TdsParserStaticMethods.cs
- CodeVariableDeclarationStatement.cs
- WebPartConnectionsDisconnectVerb.cs
- GenericWebPart.cs
- GuidTagList.cs
- ConfigurationElement.cs
- ExpandableObjectConverter.cs
- FlowDocumentScrollViewer.cs
- StandardCommandToolStripMenuItem.cs
- PenThreadWorker.cs
- TextParagraphCache.cs
- FastEncoder.cs
- StatusBarPanelClickEvent.cs
- TableLayoutSettings.cs