Code:
/ 4.0 / 4.0 / 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. 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
- CookieProtection.cs
- BufferedGraphics.cs
- CompressEmulationStream.cs
- DataGridViewCellParsingEventArgs.cs
- HttpApplication.cs
- CodeMethodInvokeExpression.cs
- SecurityTokenRequirement.cs
- SessionEndedEventArgs.cs
- TakeQueryOptionExpression.cs
- AssociationType.cs
- OverflowException.cs
- ConfigurationValidatorAttribute.cs
- VoiceSynthesis.cs
- UshortList2.cs
- ListItemConverter.cs
- X500Name.cs
- UriWriter.cs
- ObjectViewListener.cs
- TaiwanLunisolarCalendar.cs
- PropVariant.cs
- WebScriptClientGenerator.cs
- BStrWrapper.cs
- GeneralTransform3DTo2DTo3D.cs
- BoundPropertyEntry.cs
- ProviderCollection.cs
- Typeface.cs
- GifBitmapEncoder.cs
- SpellCheck.cs
- TypefaceMetricsCache.cs
- WmlLiteralTextAdapter.cs
- EncryptedData.cs
- QueryInterceptorAttribute.cs
- AuthenticatedStream.cs
- MediaCommands.cs
- BehaviorEditorPart.cs
- SecurityIdentifierElement.cs
- StrongTypingException.cs
- NopReturnReader.cs
- DataGridViewLinkCell.cs
- ToolStripRendererSwitcher.cs
- OleDbEnumerator.cs
- KeyConverter.cs
- InputScopeNameConverter.cs
- HttpContextServiceHost.cs
- ALinqExpressionVisitor.cs
- AccessDataSourceView.cs
- ObjectDataSourceFilteringEventArgs.cs
- WebPartCatalogCloseVerb.cs
- PanelContainerDesigner.cs
- KnownBoxes.cs
- Button.cs
- CodeGenerator.cs
- ExeContext.cs
- SiteMapProvider.cs
- RowParagraph.cs
- _ListenerRequestStream.cs
- HwndMouseInputProvider.cs
- TypeConverter.cs
- PathFigure.cs
- DataGridViewColumnDividerDoubleClickEventArgs.cs
- ClassDataContract.cs
- DSACryptoServiceProvider.cs
- ConstructorExpr.cs
- CheckBox.cs
- WhitespaceSignificantCollectionAttribute.cs
- DataDocumentXPathNavigator.cs
- CharacterBufferReference.cs
- SqlClientPermission.cs
- NullRuntimeConfig.cs
- connectionpool.cs
- PlatformCulture.cs
- TextBox.cs
- UIPropertyMetadata.cs
- Button.cs
- TrackingProvider.cs
- ClaimComparer.cs
- CodeTypeDelegate.cs
- SetIndexBinder.cs
- _ListenerAsyncResult.cs
- OracleInternalConnection.cs
- DocumentGrid.cs
- TypeUtils.cs
- RowUpdatingEventArgs.cs
- QilPatternVisitor.cs
- MobileDeviceCapabilitiesSectionHandler.cs
- BlobPersonalizationState.cs
- ArraySortHelper.cs
- ProxyAttribute.cs
- XmlHelper.cs
- RemotingClientProxy.cs
- DrawingCollection.cs
- wgx_exports.cs
- RepeaterCommandEventArgs.cs
- JsonStringDataContract.cs
- PropertyCollection.cs
- XmlFileEditor.cs
- DesignerObjectListAdapter.cs
- StreamGeometry.cs
- XmlMessageFormatter.cs
- AuthenticationService.cs