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
- RecognitionResult.cs
- EventQueueState.cs
- MD5CryptoServiceProvider.cs
- ActivityStatusChangeEventArgs.cs
- DesignerActionUIService.cs
- CollectionViewGroupInternal.cs
- ResXFileRef.cs
- CharConverter.cs
- ClientFormsAuthenticationCredentials.cs
- OleDbConnectionFactory.cs
- DbParameterHelper.cs
- TraceListener.cs
- DesignerActionKeyboardBehavior.cs
- BitmapEffectDrawing.cs
- CollectionType.cs
- DecoderFallbackWithFailureFlag.cs
- AbsoluteQuery.cs
- PropertyInformation.cs
- MethodImplAttribute.cs
- XPathBinder.cs
- ManipulationDevice.cs
- DocumentViewerBaseAutomationPeer.cs
- TextDpi.cs
- StreamUpgradeInitiator.cs
- IndexedGlyphRun.cs
- WpfKnownTypeInvoker.cs
- PasswordDeriveBytes.cs
- WebUtil.cs
- CacheMode.cs
- TablePatternIdentifiers.cs
- ComboBoxRenderer.cs
- TextRangeProviderWrapper.cs
- clipboard.cs
- XmlnsCompatibleWithAttribute.cs
- AttachedPropertyMethodSelector.cs
- Predicate.cs
- DBSqlParserTable.cs
- SoapMessage.cs
- COM2TypeInfoProcessor.cs
- FlowNode.cs
- sqlmetadatafactory.cs
- ContentControl.cs
- UnsafeNativeMethods.cs
- Validator.cs
- DirectoryInfo.cs
- HtmlButton.cs
- KeyGestureConverter.cs
- ConfigXmlSignificantWhitespace.cs
- ServiceModelActivationSectionGroup.cs
- _ConnectStream.cs
- HyperlinkAutomationPeer.cs
- FileLevelControlBuilderAttribute.cs
- X509ChainElement.cs
- Point.cs
- DoWhile.cs
- OdbcEnvironment.cs
- ObjectStateFormatter.cs
- FormViewUpdatedEventArgs.cs
- PagedDataSource.cs
- Resources.Designer.cs
- QualifiedCellIdBoolean.cs
- RenderOptions.cs
- ArithmeticLiteral.cs
- WinEventHandler.cs
- MailWebEventProvider.cs
- SelectiveScrollingGrid.cs
- XmlIncludeAttribute.cs
- WebServiceData.cs
- MethodToken.cs
- SqlTransaction.cs
- InvokeMethodDesigner.xaml.cs
- Directory.cs
- OdbcException.cs
- RequestContext.cs
- _LoggingObject.cs
- StyleBamlTreeBuilder.cs
- SystemIPInterfaceStatistics.cs
- SchemaElement.cs
- PositiveTimeSpanValidator.cs
- MSG.cs
- ImageMetadata.cs
- MasterPageCodeDomTreeGenerator.cs
- EntityClientCacheEntry.cs
- SweepDirectionValidation.cs
- ParameterCollection.cs
- PenThreadWorker.cs
- DataGridViewCellEventArgs.cs
- DynamicPropertyReader.cs
- RefreshEventArgs.cs
- ScriptBehaviorDescriptor.cs
- PropertyDescriptors.cs
- Oid.cs
- DataPagerFieldItem.cs
- TdsEnums.cs
- LocatorPartList.cs
- ParameterInfo.cs
- AssemblyCollection.cs
- CapabilitiesState.cs
- XamlSerializerUtil.cs
- RSAOAEPKeyExchangeFormatter.cs