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
- TextPatternIdentifiers.cs
- ProtocolsConfigurationEntry.cs
- ConfigXmlText.cs
- MsmqInputChannelListener.cs
- HttpRequest.cs
- ExpressionConverter.cs
- CapabilitiesPattern.cs
- SolidBrush.cs
- PageCatalogPart.cs
- AsnEncodedData.cs
- ProcessModuleCollection.cs
- DefinitionBase.cs
- HttpCookiesSection.cs
- ThreadStateException.cs
- Win32.cs
- XmlTextReaderImplHelpers.cs
- Constants.cs
- NativeMethods.cs
- BitmapCodecInfoInternal.cs
- ValidationSummaryDesigner.cs
- SaveWorkflowCommand.cs
- ObjectDataSourceView.cs
- SettingsPropertyValue.cs
- DataGridViewCellErrorTextNeededEventArgs.cs
- InstanceLockQueryResult.cs
- ServiceBuildProvider.cs
- DataControlImageButton.cs
- SafeThreadHandle.cs
- SqlCacheDependencyDatabase.cs
- Rfc4050KeyFormatter.cs
- LateBoundBitmapDecoder.cs
- ProfileEventArgs.cs
- WebServiceParameterData.cs
- HttpPostProtocolImporter.cs
- ClientSettingsStore.cs
- DayRenderEvent.cs
- exports.cs
- XmlNamespaceManager.cs
- SecurityContext.cs
- httpapplicationstate.cs
- PersonalizationProviderHelper.cs
- LayoutTable.cs
- ElementNotEnabledException.cs
- TextElementCollection.cs
- BindingMemberInfo.cs
- CodePropertyReferenceExpression.cs
- DomainLiteralReader.cs
- Win32.cs
- DataGridViewBindingCompleteEventArgs.cs
- DesignerSerializerAttribute.cs
- XmlUtf8RawTextWriter.cs
- CodeGen.cs
- PeerPresenceInfo.cs
- ProfileService.cs
- LabelDesigner.cs
- StdValidatorsAndConverters.cs
- IDictionary.cs
- Object.cs
- _Semaphore.cs
- ISCIIEncoding.cs
- SqlNodeAnnotation.cs
- WindowsClaimSet.cs
- SQLMoney.cs
- ListBoxAutomationPeer.cs
- QueuePropertyVariants.cs
- StaticTextPointer.cs
- DoubleKeyFrameCollection.cs
- HttpCapabilitiesEvaluator.cs
- AccessDataSourceView.cs
- RenderData.cs
- SR.cs
- GridEntry.cs
- CompilerScope.cs
- TextFormatterImp.cs
- PropertyEntry.cs
- AsyncPostBackTrigger.cs
- UpdateProgress.cs
- EditorAttributeInfo.cs
- SyndicationPerson.cs
- LinqDataSourceStatusEventArgs.cs
- ContextStaticAttribute.cs
- SafeWaitHandle.cs
- XmlSignificantWhitespace.cs
- AutoFocusStyle.xaml.cs
- GlyphCache.cs
- AxHost.cs
- XmlCodeExporter.cs
- MemoryStream.cs
- SystemWebSectionGroup.cs
- Header.cs
- DataServiceQueryOfT.cs
- ObjectStateFormatter.cs
- DataGridDetailsPresenterAutomationPeer.cs
- DataServiceQueryContinuation.cs
- XPathNode.cs
- HScrollBar.cs
- TrustLevelCollection.cs
- MachineKeyConverter.cs
- MemberInitExpression.cs
- IDictionary.cs