Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DLinq / Dlinq / SqlClient / Query / SqlAliasesReferenced.cs / 1305376 / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ChunkedMemoryStream.cs
- EncryptedPackage.cs
- FlowDocumentFormatter.cs
- PanelStyle.cs
- TextBounds.cs
- DataExpression.cs
- StaticResourceExtension.cs
- WorkflowApplicationAbortedException.cs
- XmlQueryContext.cs
- PageThemeCodeDomTreeGenerator.cs
- OdbcError.cs
- DataGridCommandEventArgs.cs
- StrongName.cs
- LinqDataSourceSelectEventArgs.cs
- OverflowException.cs
- CopyOnWriteList.cs
- AliasedSlot.cs
- ExecutionContext.cs
- HatchBrush.cs
- BrushConverter.cs
- BatchStream.cs
- ExitEventArgs.cs
- CodeMemberProperty.cs
- X509AsymmetricSecurityKey.cs
- CharacterMetricsDictionary.cs
- AccessKeyManager.cs
- ValueCollectionParameterReader.cs
- PluralizationService.cs
- CompiledQueryCacheKey.cs
- CellTreeNodeVisitors.cs
- ProjectionRewriter.cs
- CategoryAttribute.cs
- ArrayEditor.cs
- AsyncInvokeOperation.cs
- UriTemplateCompoundPathSegment.cs
- Button.cs
- HttpBrowserCapabilitiesBase.cs
- TextRangeProviderWrapper.cs
- DispatcherEventArgs.cs
- TransformPattern.cs
- XmlNotation.cs
- CacheRequest.cs
- DependencyPropertyDescriptor.cs
- CacheRequest.cs
- LayoutEngine.cs
- UnaryNode.cs
- ReversePositionQuery.cs
- ClientSideQueueItem.cs
- BitmapEffectOutputConnector.cs
- ZipArchive.cs
- TypeConverter.cs
- StateBag.cs
- Variable.cs
- BuiltInExpr.cs
- documentsequencetextpointer.cs
- ApplicationServiceManager.cs
- CodeAttributeDeclarationCollection.cs
- DynamicQueryableWrapper.cs
- ProxyWebPartManager.cs
- baseaxisquery.cs
- RenderDataDrawingContext.cs
- ContextMenuAutomationPeer.cs
- TypeLibConverter.cs
- EncodingStreamWrapper.cs
- ServiceHttpHandlerFactory.cs
- SoapIncludeAttribute.cs
- MergeFailedEvent.cs
- HtmlProps.cs
- ReferencedAssembly.cs
- UInt32.cs
- TranslateTransform.cs
- XmlEnumAttribute.cs
- NativeMethods.cs
- HtmlInputPassword.cs
- FileStream.cs
- SwitchAttribute.cs
- CallbackException.cs
- tooltip.cs
- Bitmap.cs
- FormClosingEvent.cs
- BuildProvidersCompiler.cs
- HtmlInputFile.cs
- MailMessageEventArgs.cs
- StreamResourceInfo.cs
- DataPagerCommandEventArgs.cs
- CodeChecksumPragma.cs
- _PooledStream.cs
- StronglyTypedResourceBuilder.cs
- NetworkCredential.cs
- XamlTreeBuilder.cs
- WebPartAddingEventArgs.cs
- CompositeControl.cs
- ReadWriteObjectLock.cs
- MessageFilterTable.cs
- GridEntry.cs
- ApplicationId.cs
- CapabilitiesSection.cs
- SHA1Managed.cs
- TypedDataSourceCodeGenerator.cs
- SiteMapHierarchicalDataSourceView.cs