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
- AutoResetEvent.cs
- MultipleViewPattern.cs
- ObjectStateEntryDbUpdatableDataRecord.cs
- SqlLiftWhereClauses.cs
- ClaimTypeElement.cs
- ImageDrawing.cs
- Int64Converter.cs
- GridViewCellAutomationPeer.cs
- EventRouteFactory.cs
- TranslateTransform3D.cs
- RadialGradientBrush.cs
- ParallelTimeline.cs
- _ChunkParse.cs
- Debug.cs
- CellConstant.cs
- DecoderFallback.cs
- WebPartZoneBaseDesigner.cs
- AspNetHostingPermission.cs
- Convert.cs
- CodeGenerator.cs
- ListView.cs
- ResXDataNode.cs
- DataTablePropertyDescriptor.cs
- EnumerableRowCollection.cs
- TextFragmentEngine.cs
- DisplayMemberTemplateSelector.cs
- HideDisabledControlAdapter.cs
- ClientFormsAuthenticationMembershipProvider.cs
- Animatable.cs
- Vector3DConverter.cs
- UdpDuplexChannel.cs
- ActivityWithResultConverter.cs
- JoinSymbol.cs
- DataGridRowHeader.cs
- InputQueue.cs
- FontSizeConverter.cs
- FtpWebRequest.cs
- ReliabilityContractAttribute.cs
- DateTime.cs
- ByteRangeDownloader.cs
- CombinedGeometry.cs
- ExeContext.cs
- NumericUpDownAcceleration.cs
- TextElementCollection.cs
- ProtocolsConfigurationEntry.cs
- DataControlFieldHeaderCell.cs
- TableCellsCollectionEditor.cs
- SatelliteContractVersionAttribute.cs
- PriorityRange.cs
- NameValueSectionHandler.cs
- ClientOptions.cs
- SqlProvider.cs
- ColorIndependentAnimationStorage.cs
- SessionStateContainer.cs
- DataGridrowEditEndingEventArgs.cs
- RightsManagementInformation.cs
- EditorPart.cs
- GraphicsPath.cs
- ScriptingSectionGroup.cs
- Stroke2.cs
- Logging.cs
- Shared.cs
- StopStoryboard.cs
- VirtualDirectoryMapping.cs
- ColumnWidthChangingEvent.cs
- FileSystemEventArgs.cs
- Int32Rect.cs
- ReadOnlyKeyedCollection.cs
- SelectionManager.cs
- RepeatEnumerable.cs
- OrderingExpression.cs
- NetMsmqBinding.cs
- IdnMapping.cs
- SQLSingle.cs
- TypeConvertions.cs
- OutputWindow.cs
- TypeConverterAttribute.cs
- EntitySetDataBindingList.cs
- ElementFactory.cs
- Point4D.cs
- CodeArgumentReferenceExpression.cs
- HandledEventArgs.cs
- TableRowCollection.cs
- CheckBox.cs
- TextHidden.cs
- ThreadStartException.cs
- FatalException.cs
- XmlTypeMapping.cs
- WebHttpDispatchOperationSelector.cs
- ComponentCollection.cs
- PopupEventArgs.cs
- BamlBinaryWriter.cs
- DataGridLinkButton.cs
- CustomPopupPlacement.cs
- ProjectedSlot.cs
- RewritingValidator.cs
- SimpleType.cs
- PreservationFileWriter.cs
- XmlDictionaryString.cs
- Dispatcher.cs