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
- XmlDataSource.cs
- MouseButton.cs
- DeviceFiltersSection.cs
- HtmlTable.cs
- HtmlInputHidden.cs
- BamlRecordHelper.cs
- Base64Encoder.cs
- ZoomPercentageConverter.cs
- CustomAttributeBuilder.cs
- ObjectQueryState.cs
- PhysicalAddress.cs
- ProcessModelSection.cs
- HttpCapabilitiesEvaluator.cs
- EventDescriptor.cs
- ContextStack.cs
- WaitingCursor.cs
- TraceContextEventArgs.cs
- SubclassTypeValidatorAttribute.cs
- UnaryNode.cs
- XmlUnspecifiedAttribute.cs
- DisplayInformation.cs
- OutputCacheSection.cs
- GeometryConverter.cs
- LOSFormatter.cs
- GridViewRowPresenter.cs
- Resources.Designer.cs
- ToolStripPanelCell.cs
- FreezableDefaultValueFactory.cs
- XPathDescendantIterator.cs
- DateTimeOffset.cs
- PropertyDescriptorComparer.cs
- DocumentOrderQuery.cs
- RadioButtonFlatAdapter.cs
- WindowsSysHeader.cs
- SessionStateModule.cs
- Collection.cs
- XmlDocument.cs
- ResourceWriter.cs
- DrawingVisualDrawingContext.cs
- EventLogPermissionEntryCollection.cs
- Literal.cs
- EntityObject.cs
- BitmapEffectDrawingContextState.cs
- GridViewRowCollection.cs
- ColumnResizeAdorner.cs
- FieldDescriptor.cs
- StrokeCollection2.cs
- StrokeFIndices.cs
- RegexInterpreter.cs
- PropagatorResult.cs
- TabletCollection.cs
- ServicePoint.cs
- SamlAttribute.cs
- DataGridViewRowConverter.cs
- ReadOnlyDataSource.cs
- DataReceivedEventArgs.cs
- Query.cs
- SplitterPanelDesigner.cs
- Animatable.cs
- ServiceDescriptionReflector.cs
- IFlowDocumentViewer.cs
- RIPEMD160Managed.cs
- QilLiteral.cs
- GlobalProxySelection.cs
- OneOfTypeConst.cs
- ListBoxAutomationPeer.cs
- ActiveXHost.cs
- RegexWorker.cs
- SqlDataRecord.cs
- BitmapMetadataBlob.cs
- DesignerWidgets.cs
- GlobalProxySelection.cs
- WmlValidationSummaryAdapter.cs
- MethodCallConverter.cs
- ValidatedControlConverter.cs
- SQLMoney.cs
- XmlDocumentFieldSchema.cs
- TreeNodeBinding.cs
- XmlIlTypeHelper.cs
- SqlMultiplexer.cs
- SafeNativeMethodsCLR.cs
- QueryGenerator.cs
- CompilerTypeWithParams.cs
- XmlImplementation.cs
- InvalidAsynchronousStateException.cs
- KnownIds.cs
- XmlDocumentType.cs
- EditorZoneBase.cs
- __TransparentProxy.cs
- MethodRental.cs
- _SSPISessionCache.cs
- ScriptManagerProxy.cs
- Completion.cs
- GradientStopCollection.cs
- BadImageFormatException.cs
- ConnectionManagementSection.cs
- XmlIlVisitor.cs
- AdCreatedEventArgs.cs
- DocumentViewer.cs
- FragmentQueryProcessor.cs