Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / ndp / fx / src / DLinq / Dlinq / SqlClient / Query / SqlAliasesReferenced.cs / 1 / SqlAliasesReferenced.cs
using System; using System.Collections.Generic; using System.Text; namespace System.Data.Linq.SqlClient { ////// Find referenced Aliases within a node. /// internal static class SqlAliasesReferenced { ////// Private visitor which walks the tree and looks for referenced aliases. /// private class Visitor : SqlVisitor { internal IEnumerablealiases; internal bool referencesAnyMatchingAliases = false; internal override SqlNode Visit(SqlNode node) { // Short-circuit when the answer is alreading known if (this.referencesAnyMatchingAliases) { return node; } return base.Visit(node); } internal SqlAlias VisitAliasConsumed(SqlAlias a) { if (a == null) return a; bool match = false; foreach (SqlAlias alias in aliases) if (alias == a) { match = true; break; } if (match) { this.referencesAnyMatchingAliases = true; } return a; } internal override SqlExpression VisitColumn(SqlColumn col) { VisitAliasConsumed(col.Alias); VisitExpression(col.Expression); return col; } internal override SqlExpression VisitColumnRef(SqlColumnRef cref) { VisitAliasConsumed(cref.Column.Alias); VisitExpression(cref.Column.Expression); return cref; } } /// /// Returns true iff the given node references any aliases the list of 'aliases'. /// internal static bool ReferencesAny(SqlNode node, IEnumerablealiases) { Visitor visitor = new Visitor(); visitor.aliases = aliases; visitor.Visit(node); return visitor.referencesAnyMatchingAliases; } } } // 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.Text; namespace System.Data.Linq.SqlClient { /// /// Find referenced Aliases within a node. /// internal static class SqlAliasesReferenced { ////// Private visitor which walks the tree and looks for referenced aliases. /// private class Visitor : SqlVisitor { internal IEnumerablealiases; internal bool referencesAnyMatchingAliases = false; internal override SqlNode Visit(SqlNode node) { // Short-circuit when the answer is alreading known if (this.referencesAnyMatchingAliases) { return node; } return base.Visit(node); } internal SqlAlias VisitAliasConsumed(SqlAlias a) { if (a == null) return a; bool match = false; foreach (SqlAlias alias in aliases) if (alias == a) { match = true; break; } if (match) { this.referencesAnyMatchingAliases = true; } return a; } internal override SqlExpression VisitColumn(SqlColumn col) { VisitAliasConsumed(col.Alias); VisitExpression(col.Expression); return col; } internal override SqlExpression VisitColumnRef(SqlColumnRef cref) { VisitAliasConsumed(cref.Column.Alias); VisitExpression(cref.Column.Expression); return cref; } } /// /// Returns true iff the given node references any aliases the list of 'aliases'. /// internal static bool ReferencesAny(SqlNode node, IEnumerablealiases) { Visitor visitor = new Visitor(); visitor.aliases = aliases; visitor.Visit(node); return visitor.referencesAnyMatchingAliases; } } } // 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
- ListBindingHelper.cs
- SystemInformation.cs
- GenericTextProperties.cs
- DisableDpiAwarenessAttribute.cs
- SqlUserDefinedAggregateAttribute.cs
- AvtEvent.cs
- ScrollData.cs
- AutomationPropertyInfo.cs
- LOSFormatter.cs
- StringHelper.cs
- EmbeddedMailObjectsCollection.cs
- WebBrowserNavigatingEventHandler.cs
- ExpressionBuilderContext.cs
- XmlDataSourceNodeDescriptor.cs
- DataGridViewImageCell.cs
- TypeConverterMarkupExtension.cs
- DeleteIndexBinder.cs
- TypeLibConverter.cs
- HMACSHA256.cs
- EncoderParameters.cs
- MailMessage.cs
- ExceptionHandlersDesigner.cs
- TypeListConverter.cs
- MutexSecurity.cs
- Page.cs
- FormsAuthenticationUserCollection.cs
- ObjectDataSourceView.cs
- HttpAsyncResult.cs
- XmlArrayItemAttributes.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- RichTextBox.cs
- InputBinder.cs
- MethodBody.cs
- ScrollContentPresenter.cs
- FontFamilyConverter.cs
- MSAANativeProvider.cs
- SQLByte.cs
- Helper.cs
- DbConnectionStringCommon.cs
- mda.cs
- DbConnectionPoolGroupProviderInfo.cs
- SQLDateTime.cs
- LocalizableAttribute.cs
- EnumerableRowCollection.cs
- PngBitmapDecoder.cs
- AuthenticationService.cs
- IndexingContentUnit.cs
- PropertyIDSet.cs
- Expr.cs
- Variant.cs
- Matrix3D.cs
- ThousandthOfEmRealDoubles.cs
- DynamicActivityProperty.cs
- WindowsRegion.cs
- PropertyPathConverter.cs
- TagElement.cs
- CompilerLocalReference.cs
- SmiEventSink.cs
- ReadOnlyNameValueCollection.cs
- StrongNamePublicKeyBlob.cs
- DataGridDesigner.cs
- DataKeyCollection.cs
- ComponentRenameEvent.cs
- ServiceObjectContainer.cs
- CodeCommentStatement.cs
- ClientData.cs
- Label.cs
- DeploymentSectionCache.cs
- AssertFilter.cs
- Size3D.cs
- ControlsConfig.cs
- ApplicationContext.cs
- BufferBuilder.cs
- ListControl.cs
- _RequestCacheProtocol.cs
- RectangleConverter.cs
- ToolStripItemImageRenderEventArgs.cs
- XmlSchemaImport.cs
- HostedTransportConfigurationManager.cs
- DelegatedStream.cs
- BitmapEffectDrawingContextState.cs
- IOException.cs
- VirtualDirectoryMapping.cs
- AttachedAnnotationChangedEventArgs.cs
- Profiler.cs
- CodeActivity.cs
- DockingAttribute.cs
- PanelStyle.cs
- RequestCachePolicy.cs
- Calendar.cs
- DesignerOptions.cs
- SQLMembershipProvider.cs
- PermissionSet.cs
- DataPagerField.cs
- ProcessProtocolHandler.cs
- TableCell.cs
- IgnorePropertiesAttribute.cs
- basecomparevalidator.cs
- StrokeDescriptor.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs