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
- SmtpSection.cs
- SystemInformation.cs
- ModuleBuilderData.cs
- SimpleHandlerFactory.cs
- DocumentGridContextMenu.cs
- RootProfilePropertySettingsCollection.cs
- AspCompat.cs
- MemberListBinding.cs
- StylusPointPropertyInfoDefaults.cs
- securitycriticaldataformultiplegetandset.cs
- TableChangeProcessor.cs
- DataGridViewRowCollection.cs
- HandledMouseEvent.cs
- FrameworkContentElement.cs
- Compiler.cs
- PermissionSetEnumerator.cs
- SqlDataSourceConfigureFilterForm.cs
- XmlLanguageConverter.cs
- TiffBitmapEncoder.cs
- TypeSystem.cs
- CacheMemory.cs
- ObjectResult.cs
- DataGridViewRowCollection.cs
- MessageQueuePermission.cs
- AsyncOperation.cs
- DSASignatureFormatter.cs
- SpecialNameAttribute.cs
- GPPOINTF.cs
- ToolboxDataAttribute.cs
- ContextMenu.cs
- EntityDataSourceContextCreatedEventArgs.cs
- SendingRequestEventArgs.cs
- DbMetaDataFactory.cs
- PropertyDescriptor.cs
- InProcStateClientManager.cs
- GraphicsPath.cs
- TypeInitializationException.cs
- BaseDataList.cs
- IdentityNotMappedException.cs
- MediaContext.cs
- ContextQuery.cs
- PowerEase.cs
- Condition.cs
- PinnedBufferMemoryStream.cs
- HyperLinkStyle.cs
- EventLogPermission.cs
- GroupedContextMenuStrip.cs
- ProgressBar.cs
- NavigateEvent.cs
- Base64WriteStateInfo.cs
- SqlErrorCollection.cs
- Int16KeyFrameCollection.cs
- PtsContext.cs
- TimeEnumHelper.cs
- BuiltInExpr.cs
- ColumnHeaderCollectionEditor.cs
- ManagementObject.cs
- DataGridViewCellPaintingEventArgs.cs
- UpdateRecord.cs
- WebBrowserBase.cs
- ColumnResizeAdorner.cs
- CodePropertyReferenceExpression.cs
- NonClientArea.cs
- GlyphingCache.cs
- EdmSchemaAttribute.cs
- HyperLinkColumn.cs
- DirectionalAction.cs
- FontEmbeddingManager.cs
- ActiveXHelper.cs
- ErrorWebPart.cs
- Transform.cs
- SimpleWebHandlerParser.cs
- HoistedLocals.cs
- ExpressionEvaluator.cs
- LazyLoadBehavior.cs
- XmlTextReaderImplHelpers.cs
- HttpCookie.cs
- CodePageUtils.cs
- SeekStoryboard.cs
- XmlQuerySequence.cs
- RightsManagementEncryptionTransform.cs
- EmbeddedMailObjectsCollection.cs
- HtmlAnchor.cs
- StorageComplexPropertyMapping.cs
- ModelItemDictionary.cs
- ProxySimple.cs
- ResourceCategoryAttribute.cs
- StructuralCache.cs
- WebEvents.cs
- ConstraintEnumerator.cs
- XPathChildIterator.cs
- PrintPreviewGraphics.cs
- OrthographicCamera.cs
- _UriTypeConverter.cs
- AttributedMetaModel.cs
- MsdtcClusterUtils.cs
- DeviceContext.cs
- DynamicDataRoute.cs
- RNGCryptoServiceProvider.cs
- FreezableCollection.cs