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
- ACL.cs
- regiisutil.cs
- uribuilder.cs
- NameValueCollection.cs
- ColorBlend.cs
- InkCanvasSelection.cs
- SafeNativeMethodsMilCoreApi.cs
- HtmlInputImage.cs
- RawUIStateInputReport.cs
- HttpRequestCacheValidator.cs
- ButtonPopupAdapter.cs
- LocatorPartList.cs
- TextServicesPropertyRanges.cs
- InternalResources.cs
- NodeFunctions.cs
- NativeMethods.cs
- RequestCacheValidator.cs
- GifBitmapDecoder.cs
- InstalledVoice.cs
- Mouse.cs
- ObjectPersistData.cs
- BitmapPalette.cs
- SelectionPatternIdentifiers.cs
- SrgsElementFactoryCompiler.cs
- AbstractDataSvcMapFileLoader.cs
- InputElement.cs
- OptimalTextSource.cs
- RightsManagementEncryptedStream.cs
- ThicknessAnimation.cs
- PersonalizableTypeEntry.cs
- ToolboxItemAttribute.cs
- WebPartZoneCollection.cs
- TreeNodeConverter.cs
- MonthCalendar.cs
- SizeAnimationClockResource.cs
- SingleConverter.cs
- SqlCommand.cs
- SapiRecognizer.cs
- EncodingNLS.cs
- XamlFrame.cs
- COMException.cs
- TextElementEditingBehaviorAttribute.cs
- WebServiceHost.cs
- Console.cs
- UseLicense.cs
- SqlDependency.cs
- TryCatchDesigner.xaml.cs
- SecurityCriticalDataForSet.cs
- TextRange.cs
- MetadataExchangeBindings.cs
- HandledMouseEvent.cs
- DrawingAttributeSerializer.cs
- SizeAnimationBase.cs
- StopStoryboard.cs
- FormClosedEvent.cs
- DrawingGroupDrawingContext.cs
- VirtualDirectoryMapping.cs
- CounterCreationDataConverter.cs
- BuildDependencySet.cs
- SspiSafeHandles.cs
- ImageMap.cs
- arabicshape.cs
- SelectedCellsChangedEventArgs.cs
- XPathNode.cs
- BitmapEffectCollection.cs
- HwndHost.cs
- WorkflowQueueInfo.cs
- ConvertEvent.cs
- StdValidatorsAndConverters.cs
- PipelineModuleStepContainer.cs
- SqlException.cs
- AddToCollection.cs
- SystemUdpStatistics.cs
- DoubleUtil.cs
- DesignRelationCollection.cs
- SwitchAttribute.cs
- ConfigurationFileMap.cs
- SafeArchiveContext.cs
- LockCookie.cs
- ProxySimple.cs
- AbsoluteQuery.cs
- SqlCacheDependencyDatabaseCollection.cs
- UrlPath.cs
- ContainerVisual.cs
- MenuAutomationPeer.cs
- BinaryEditor.cs
- RadioButtonPopupAdapter.cs
- IntegrationExceptionEventArgs.cs
- DrawingVisual.cs
- SharedStatics.cs
- NetworkAddressChange.cs
- DependencyPropertyChangedEventArgs.cs
- DataPagerFieldItem.cs
- Convert.cs
- ThicknessAnimationBase.cs
- BooleanKeyFrameCollection.cs
- SamlAuthorizationDecisionClaimResource.cs
- ListViewCancelEventArgs.cs
- ToolboxItemAttribute.cs
- DataGridViewColumnStateChangedEventArgs.cs