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
- SetIndexBinder.cs
- DataServiceHostFactory.cs
- FamilyMapCollection.cs
- PropertyDescriptorCollection.cs
- WCFModelStrings.Designer.cs
- XPathPatternParser.cs
- TableColumnCollection.cs
- cookiecontainer.cs
- Decorator.cs
- HttpChannelListener.cs
- Root.cs
- SerTrace.cs
- Publisher.cs
- AudioFileOut.cs
- ListViewGroup.cs
- GeneratedCodeAttribute.cs
- ListBoxAutomationPeer.cs
- Brushes.cs
- FileSystemWatcher.cs
- XmlReader.cs
- ContractHandle.cs
- IPipelineRuntime.cs
- DBConcurrencyException.cs
- RegularExpressionValidator.cs
- WebControlsSection.cs
- SafeFindHandle.cs
- BooleanFacetDescriptionElement.cs
- RegexTree.cs
- SystemWebSectionGroup.cs
- DataGridViewCellEventArgs.cs
- CompilerInfo.cs
- UnsafeNativeMethods.cs
- ValidationErrorCollection.cs
- ExpressionConverter.cs
- ThreadExceptionDialog.cs
- DragEventArgs.cs
- NativeRightsManagementAPIsStructures.cs
- _NTAuthentication.cs
- SystemIPGlobalStatistics.cs
- CharAnimationUsingKeyFrames.cs
- ContainsSearchOperator.cs
- DataGridPageChangedEventArgs.cs
- AccessViolationException.cs
- DateTimeOffsetStorage.cs
- PageCatalogPart.cs
- OleDbConnection.cs
- ClientSideProviderDescription.cs
- ToolboxItemFilterAttribute.cs
- AdapterDictionary.cs
- SmtpCommands.cs
- DocobjHost.cs
- Context.cs
- ExpandCollapsePattern.cs
- Sql8ConformanceChecker.cs
- CancelRequestedRecord.cs
- HttpHandlersSection.cs
- AutomationElementIdentifiers.cs
- Attributes.cs
- followingsibling.cs
- __ConsoleStream.cs
- AttributeQuery.cs
- KeyedQueue.cs
- AbsoluteQuery.cs
- SynchronizedDispatch.cs
- XmlAttribute.cs
- SocketElement.cs
- ServiceHost.cs
- IPipelineRuntime.cs
- GestureRecognizer.cs
- StagingAreaInputItem.cs
- XmlSchemaGroupRef.cs
- InvalidAsynchronousStateException.cs
- CallbackHandler.cs
- HMACSHA256.cs
- UInt16Converter.cs
- LocalizableAttribute.cs
- StateElementCollection.cs
- XmlExtensionFunction.cs
- latinshape.cs
- TextSimpleMarkerProperties.cs
- BrushMappingModeValidation.cs
- DiscoveryClientDocuments.cs
- DataGridViewCellToolTipTextNeededEventArgs.cs
- StylusShape.cs
- AlphabetConverter.cs
- PropertyInfoSet.cs
- RegionIterator.cs
- ToolStripDropDownClosedEventArgs.cs
- ChangeConflicts.cs
- CLRBindingWorker.cs
- DataGridViewAdvancedBorderStyle.cs
- ObjectParameter.cs
- FormViewInsertEventArgs.cs
- PrintDialogException.cs
- DetailsViewDeletedEventArgs.cs
- Label.cs
- ListMarkerLine.cs
- Util.cs
- TemplateControlBuildProvider.cs
- Dictionary.cs