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
- Vector3DIndependentAnimationStorage.cs
- SoapAttributeAttribute.cs
- PositiveTimeSpanValidator.cs
- ButtonChrome.cs
- IPeerNeighbor.cs
- ToolStripSettings.cs
- RelationshipDetailsCollection.cs
- QilPatternVisitor.cs
- PageRanges.cs
- ApplicationHost.cs
- ParallelTimeline.cs
- PermissionSetTriple.cs
- MultipartIdentifier.cs
- TextSegment.cs
- OutputCacheProfile.cs
- adornercollection.cs
- ContentElement.cs
- SecureStringHasher.cs
- CircleHotSpot.cs
- HtmlTableRowCollection.cs
- SqlClientWrapperSmiStream.cs
- ListBindableAttribute.cs
- ServiceModelPerformanceCounters.cs
- TypeElementCollection.cs
- FunctionUpdateCommand.cs
- ActivityExecutor.cs
- DataBindingHandlerAttribute.cs
- HotCommands.cs
- LinqDataSourceDisposeEventArgs.cs
- KeyValueSerializer.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- SqlParameterizer.cs
- DataError.cs
- listitem.cs
- XmlLoader.cs
- XamlReader.cs
- SqlParameter.cs
- XmlComment.cs
- MouseGesture.cs
- GridSplitterAutomationPeer.cs
- StringSource.cs
- SchemaImporter.cs
- InternalControlCollection.cs
- PagesSection.cs
- TargetFrameworkUtil.cs
- Roles.cs
- DataSetFieldSchema.cs
- Substitution.cs
- Timer.cs
- SubclassTypeValidator.cs
- SudsCommon.cs
- EncoderNLS.cs
- PageThemeCodeDomTreeGenerator.cs
- TextUtf8RawTextWriter.cs
- NetworkStream.cs
- GraphicsContext.cs
- DataTableClearEvent.cs
- OciLobLocator.cs
- StaticContext.cs
- UnsettableComboBox.cs
- Int64KeyFrameCollection.cs
- HtmlInputCheckBox.cs
- ThousandthOfEmRealPoints.cs
- EventLogEntryCollection.cs
- HttpAsyncResult.cs
- DataGridViewCellLinkedList.cs
- MenuItemBindingCollection.cs
- PackageProperties.cs
- InheritanceContextHelper.cs
- SecurityDocument.cs
- LogPolicy.cs
- MenuEventArgs.cs
- SapiGrammar.cs
- TypeTypeConverter.cs
- ThreadBehavior.cs
- ExpressionStringBuilder.cs
- SafeNativeMethods.cs
- TextEditorLists.cs
- AuthenticationSection.cs
- SqlCaseSimplifier.cs
- ProfileInfo.cs
- DataBinder.cs
- DisplayInformation.cs
- RelatedImageListAttribute.cs
- MachineKeyConverter.cs
- MtomMessageEncodingElement.cs
- DataGridColumnHeaderAutomationPeer.cs
- EntityType.cs
- MetadataPropertyCollection.cs
- RotateTransform.cs
- TranslateTransform3D.cs
- ObjectPersistData.cs
- XmlSubtreeReader.cs
- CryptoKeySecurity.cs
- filewebresponse.cs
- ParserHooks.cs
- ImageBrush.cs
- WindowsFormsHostPropertyMap.cs
- SqlRowUpdatingEvent.cs
- MatrixAnimationUsingPath.cs