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
- AliasedExpr.cs
- _LocalDataStore.cs
- DataGridViewCellPaintingEventArgs.cs
- BevelBitmapEffect.cs
- BinaryObjectInfo.cs
- PathTooLongException.cs
- TemplateContainer.cs
- StateInitialization.cs
- FunctionParameter.cs
- DtdParser.cs
- LineInfo.cs
- NavigationExpr.cs
- Item.cs
- SplineKeyFrames.cs
- ComponentCodeDomSerializer.cs
- AndMessageFilter.cs
- SmtpDigestAuthenticationModule.cs
- FormsAuthentication.cs
- Graphics.cs
- NativeMethods.cs
- XmlNamespaceManager.cs
- RuleSetDialog.cs
- HandlerBase.cs
- ControlValuePropertyAttribute.cs
- FixedElement.cs
- RangeValuePattern.cs
- NavigationProperty.cs
- ApplicationGesture.cs
- IDQuery.cs
- ResourceDefaultValueAttribute.cs
- HotCommands.cs
- EpmHelper.cs
- WindowsGraphicsWrapper.cs
- TraceHandlerErrorFormatter.cs
- ReceiveActivity.cs
- XmlSchemaAttributeGroupRef.cs
- WebRequestModuleElement.cs
- ApplicationServicesHostFactory.cs
- PipelineDeploymentState.cs
- ControlTemplate.cs
- DispatcherTimer.cs
- BooleanSwitch.cs
- CodeTypeParameterCollection.cs
- ObjectCloneHelper.cs
- DataGridViewLinkColumn.cs
- SignedXmlDebugLog.cs
- PointIndependentAnimationStorage.cs
- PrimitiveXmlSerializers.cs
- DataGridTextBox.cs
- PropertyPushdownHelper.cs
- _FtpControlStream.cs
- ManipulationStartedEventArgs.cs
- Timer.cs
- FontNamesConverter.cs
- ConnectionPointGlyph.cs
- LogFlushAsyncResult.cs
- EventLogPermissionHolder.cs
- PackagingUtilities.cs
- Util.cs
- WindowInteractionStateTracker.cs
- QuaternionConverter.cs
- CursorConverter.cs
- QualificationDataItem.cs
- RewritingSimplifier.cs
- EdgeModeValidation.cs
- EncoderParameters.cs
- TextTreeRootTextBlock.cs
- ScaleTransform3D.cs
- HtmlForm.cs
- MessageDecoder.cs
- PointLightBase.cs
- ServiceOperationParameter.cs
- MD5Cng.cs
- ZipIOCentralDirectoryFileHeader.cs
- SignatureHelper.cs
- WindowsListViewItemStartMenu.cs
- ReadOnlyTernaryTree.cs
- IPPacketInformation.cs
- X509ScopedServiceCertificateElement.cs
- FlowLayoutPanel.cs
- WorkflowApplicationUnloadedException.cs
- IdentifierService.cs
- PipelineModuleStepContainer.cs
- ProcessInputEventArgs.cs
- PartialClassGenerationTaskInternal.cs
- DynamicControl.cs
- DBSqlParserTableCollection.cs
- OleDbSchemaGuid.cs
- RuntimeResourceSet.cs
- QilCloneVisitor.cs
- _ListenerRequestStream.cs
- XmlSchemaAnnotated.cs
- WorkflowNamespace.cs
- remotingproxy.cs
- ThumbAutomationPeer.cs
- CodeTypeConstructor.cs
- ImageButton.cs
- XmlSchemaSimpleTypeUnion.cs
- TextRangeEditTables.cs
- ControlBuilder.cs