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
- ProxyWebPart.cs
- DetailsViewModeEventArgs.cs
- Hashtable.cs
- DataGridViewAutoSizeColumnModeEventArgs.cs
- WebEventTraceProvider.cs
- TriggerCollection.cs
- SearchForVirtualItemEventArgs.cs
- SessionState.cs
- EmptyElement.cs
- FillRuleValidation.cs
- GlobalizationAssembly.cs
- ZipIOLocalFileDataDescriptor.cs
- JsonReaderDelegator.cs
- PageAdapter.cs
- SQLSingle.cs
- NamespaceQuery.cs
- CodeTypeDelegate.cs
- _StreamFramer.cs
- XamlFxTrace.cs
- InstallerTypeAttribute.cs
- ScriptingSectionGroup.cs
- DataError.cs
- Identity.cs
- UITypeEditors.cs
- FileVersionInfo.cs
- InfoCardHelper.cs
- DbConnectionClosed.cs
- indexingfiltermarshaler.cs
- PaginationProgressEventArgs.cs
- LiteralControl.cs
- FrameworkContextData.cs
- EventSourceCreationData.cs
- PictureBox.cs
- PagedDataSource.cs
- EndpointAddressElementBase.cs
- PathSegmentCollection.cs
- HtmlImage.cs
- X509ScopedServiceCertificateElement.cs
- BrushMappingModeValidation.cs
- Matrix3D.cs
- XmlQualifiedName.cs
- BitmapFrameDecode.cs
- DataGridHeaderBorder.cs
- InstanceValue.cs
- ListItem.cs
- TextBlockAutomationPeer.cs
- Operand.cs
- BitStack.cs
- DataGridViewComponentPropertyGridSite.cs
- TextElement.cs
- WebReferencesBuildProvider.cs
- MimePart.cs
- ListControlDataBindingHandler.cs
- AddInActivator.cs
- StyleHelper.cs
- TriggerCollection.cs
- SerializationSectionGroup.cs
- LoginView.cs
- sqlinternaltransaction.cs
- ContainerControl.cs
- SqlBulkCopyColumnMapping.cs
- ValidatorCollection.cs
- XmlDownloadManager.cs
- ZoneButton.cs
- COM2Properties.cs
- SlotInfo.cs
- DriveInfo.cs
- ChangeDirector.cs
- TextRenderer.cs
- Boolean.cs
- StreamUpdate.cs
- Line.cs
- EventLogger.cs
- RoutedPropertyChangedEventArgs.cs
- EventsTab.cs
- Transform3DCollection.cs
- AsymmetricSignatureDeformatter.cs
- DataReceivedEventArgs.cs
- ChildrenQuery.cs
- ObjectDataProvider.cs
- AttachedPropertiesService.cs
- KeyEvent.cs
- Decoder.cs
- ErrorLog.cs
- DataGridViewCellValidatingEventArgs.cs
- sqlpipe.cs
- InputScopeAttribute.cs
- XmlCollation.cs
- TdsParserSafeHandles.cs
- MenuItemBindingCollection.cs
- DependencyPropertyHelper.cs
- PolygonHotSpot.cs
- SplitContainer.cs
- XamlToRtfParser.cs
- RefreshEventArgs.cs
- Vector3DCollectionConverter.cs
- BrushProxy.cs
- QueryCacheKey.cs
- Line.cs
- PropertyMap.cs