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
- AssemblyUtil.cs
- GeneralTransform3DTo2DTo3D.cs
- SplitterEvent.cs
- CodeGroup.cs
- Listbox.cs
- WebPartConnection.cs
- ZipIOFileItemStream.cs
- CapabilitiesPattern.cs
- SchemaSetCompiler.cs
- DataGridViewToolTip.cs
- SendingRequestEventArgs.cs
- BindingManagerDataErrorEventArgs.cs
- SiteMapHierarchicalDataSourceView.cs
- SystemIcons.cs
- ConnectionManagementSection.cs
- SourceElementsCollection.cs
- LineGeometry.cs
- ReaderContextStackData.cs
- WebSysDescriptionAttribute.cs
- LongTypeConverter.cs
- CreateParams.cs
- AcceleratedTokenProviderState.cs
- ResourceKey.cs
- Adorner.cs
- LongTypeConverter.cs
- StorageConditionPropertyMapping.cs
- cache.cs
- ContactManager.cs
- XmlBaseWriter.cs
- xmlformatgeneratorstatics.cs
- MessageVersionConverter.cs
- Geometry3D.cs
- CompilerInfo.cs
- WebDescriptionAttribute.cs
- ButtonChrome.cs
- PbrsForward.cs
- DocumentPage.cs
- SafeUserTokenHandle.cs
- BlockCollection.cs
- DbConnectionClosed.cs
- CodeLabeledStatement.cs
- ZoneMembershipCondition.cs
- XPathItem.cs
- BitmapDecoder.cs
- __ConsoleStream.cs
- uribuilder.cs
- TrustLevel.cs
- EditorZone.cs
- EncryptedType.cs
- AmbientValueAttribute.cs
- LingerOption.cs
- TextWriter.cs
- InternalPermissions.cs
- UnicodeEncoding.cs
- SemanticTag.cs
- KnownTypes.cs
- TabControlAutomationPeer.cs
- InstalledFontCollection.cs
- Point3DCollectionValueSerializer.cs
- FastEncoderWindow.cs
- XmlSchemaSearchPattern.cs
- UserCancellationException.cs
- HtmlInputPassword.cs
- ButtonFlatAdapter.cs
- EmptyTextWriter.cs
- DataServiceExpressionVisitor.cs
- OdbcConnectionOpen.cs
- CssStyleCollection.cs
- ReferencedAssembly.cs
- ElementMarkupObject.cs
- AuthenticationModulesSection.cs
- DesignerLabelAdapter.cs
- HealthMonitoringSectionHelper.cs
- TextDecorations.cs
- DetailsViewDeleteEventArgs.cs
- DispatchWrapper.cs
- DragDrop.cs
- XPathConvert.cs
- DataPagerFieldItem.cs
- COM2Properties.cs
- SafeLocalMemHandle.cs
- CategoryAttribute.cs
- CodeDOMProvider.cs
- SafeNativeMethods.cs
- MimeBasePart.cs
- Brush.cs
- XsltLoader.cs
- XmlSubtreeReader.cs
- JumpItem.cs
- ToolStripSystemRenderer.cs
- ServiceDescriptionSerializer.cs
- MarkupExtensionReturnTypeAttribute.cs
- ServiceReference.cs
- ProfilePropertySettings.cs
- DataGridViewAddColumnDialog.cs
- GenericPrincipal.cs
- EUCJPEncoding.cs
- Avt.cs
- ClientRoleProvider.cs
- AutoGeneratedField.cs