Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- DummyDataSource.cs
- PersistenceException.cs
- ControlPropertyNameConverter.cs
- PersistenceException.cs
- PageAdapter.cs
- InfoCard.cs
- AvTraceFormat.cs
- QueryResponse.cs
- Margins.cs
- DbConnectionStringCommon.cs
- BackgroundFormatInfo.cs
- KeySpline.cs
- SectionRecord.cs
- AddInPipelineAttributes.cs
- X509PeerCertificateAuthentication.cs
- UserInitiatedRoutedEventPermissionAttribute.cs
- LogPolicy.cs
- DocumentViewerConstants.cs
- ManualResetEvent.cs
- infer.cs
- MenuBase.cs
- NativeCompoundFileAPIs.cs
- ConnectivityStatus.cs
- RawUIStateInputReport.cs
- SystemFonts.cs
- RSAPKCS1SignatureFormatter.cs
- Stream.cs
- CollectionViewGroupInternal.cs
- TextDocumentView.cs
- BezierSegment.cs
- SqlCommand.cs
- CreateUserWizardStep.cs
- ProcessHostServerConfig.cs
- CompositeKey.cs
- CachedTypeface.cs
- AnnotationComponentChooser.cs
- RoleManagerSection.cs
- ObjectDataSourceFilteringEventArgs.cs
- CapabilitiesPattern.cs
- ContextMenuStripActionList.cs
- EntityDataSourceContextCreatingEventArgs.cs
- DataBindingExpressionBuilder.cs
- NetworkInformationException.cs
- CopyOnWriteList.cs
- FilePrompt.cs
- ProxyGenerationError.cs
- ButtonBaseAutomationPeer.cs
- WebResourceUtil.cs
- DataBindingHandlerAttribute.cs
- AlphabetConverter.cs
- SafeHandles.cs
- CodeDelegateInvokeExpression.cs
- GC.cs
- TransformerInfoCollection.cs
- RoleManagerSection.cs
- TextTabProperties.cs
- QuaternionRotation3D.cs
- regiisutil.cs
- PositiveTimeSpanValidatorAttribute.cs
- ColorConvertedBitmap.cs
- X509UI.cs
- XmlSchemaAppInfo.cs
- UniqueIdentifierService.cs
- ColorIndependentAnimationStorage.cs
- COM2ColorConverter.cs
- WhiteSpaceTrimStringConverter.cs
- Ipv6Element.cs
- LayoutInformation.cs
- DBSchemaRow.cs
- Calendar.cs
- HttpCachePolicyElement.cs
- ActivationWorker.cs
- TableRowCollection.cs
- VersionedStream.cs
- AudioBase.cs
- RotationValidation.cs
- TableAutomationPeer.cs
- ColorTranslator.cs
- BaseDataListComponentEditor.cs
- SetIterators.cs
- TransformProviderWrapper.cs
- Math.cs
- PenLineCapValidation.cs
- DataGridViewRowCollection.cs
- RewritingValidator.cs
- ListParagraph.cs
- DependencyObject.cs
- PlainXmlDeserializer.cs
- ApplicationSecurityInfo.cs
- DuplicateWaitObjectException.cs
- updatecommandorderer.cs
- EncodedStreamFactory.cs
- NameValueCache.cs
- SelectionItemPattern.cs
- HwndPanningFeedback.cs
- TextRenderer.cs
- PackageRelationshipCollection.cs
- FactoryRecord.cs
- ListBox.cs
- DrawingCollection.cs