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
- ListManagerBindingsCollection.cs
- DataMemberConverter.cs
- Base64Stream.cs
- JournalNavigationScope.cs
- RectIndependentAnimationStorage.cs
- MailHeaderInfo.cs
- SchemaTableColumn.cs
- LassoHelper.cs
- ProcessHostMapPath.cs
- RemotingClientProxy.cs
- MarginCollapsingState.cs
- ConfigurationStrings.cs
- ConstructorNeedsTagAttribute.cs
- ParameterToken.cs
- OleDbSchemaGuid.cs
- RadioButtonFlatAdapter.cs
- ListControlStringCollectionEditor.cs
- ThousandthOfEmRealDoubles.cs
- OptionalMessageQuery.cs
- IPipelineRuntime.cs
- DesignTimeSiteMapProvider.cs
- SrgsText.cs
- ImageDrawing.cs
- _ContextAwareResult.cs
- MediaElementAutomationPeer.cs
- FixUpCollection.cs
- ReaderWriterLock.cs
- ScrollProviderWrapper.cs
- FontWeights.cs
- DbConnectionPoolGroup.cs
- ButtonBase.cs
- GridViewColumnHeader.cs
- XmlQuerySequence.cs
- ResetableIterator.cs
- GregorianCalendarHelper.cs
- SafeHandle.cs
- TrackBar.cs
- NetMsmqSecurityMode.cs
- XmlCharacterData.cs
- TabControlCancelEvent.cs
- HtmlAnchor.cs
- InvalidProgramException.cs
- SqlDataSource.cs
- NullRuntimeConfig.cs
- RepeaterItemEventArgs.cs
- DbMetaDataFactory.cs
- ToolboxItemAttribute.cs
- XmlElementList.cs
- HostProtectionException.cs
- TextSearch.cs
- DefaultSection.cs
- DataGridColumnDropSeparator.cs
- QueuePropertyVariants.cs
- ChtmlTextWriter.cs
- InitiatorServiceModelSecurityTokenRequirement.cs
- FreezableOperations.cs
- AliasedSlot.cs
- DataGridViewRowHeaderCell.cs
- ImageButton.cs
- WpfKnownType.cs
- AdapterDictionary.cs
- DynamicILGenerator.cs
- SecurityChannelFaultConverter.cs
- X509KeyIdentifierClauseType.cs
- LinearGradientBrush.cs
- OneOfTypeConst.cs
- prompt.cs
- Transform.cs
- FormViewPageEventArgs.cs
- StrongNameIdentityPermission.cs
- HierarchicalDataBoundControlAdapter.cs
- RSAPKCS1KeyExchangeFormatter.cs
- DBSqlParserColumnCollection.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- DbConnectionClosed.cs
- RuntimeHandles.cs
- ColorContext.cs
- HttpModuleCollection.cs
- ListDictionary.cs
- NullableDecimalSumAggregationOperator.cs
- AppSettingsReader.cs
- ConfigurationSettings.cs
- HttpDebugHandler.cs
- WindowsRegion.cs
- MissingFieldException.cs
- KeyedCollection.cs
- validation.cs
- RefType.cs
- XhtmlCssHandler.cs
- HandlerBase.cs
- VariantWrapper.cs
- ellipse.cs
- MenuItemBindingCollection.cs
- ObsoleteAttribute.cs
- ColorTransformHelper.cs
- ArraySortHelper.cs
- TrustLevel.cs
- _NegotiateClient.cs
- HostedElements.cs
- MultipleViewPatternIdentifiers.cs