Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- UnaryQueryOperator.cs
- RSAPKCS1KeyExchangeFormatter.cs
- XmlEnumAttribute.cs
- SqlGatherConsumedAliases.cs
- ListComponentEditorPage.cs
- XMLUtil.cs
- NotifyIcon.cs
- HandlerMappingMemo.cs
- DataObject.cs
- EnumBuilder.cs
- JoinSymbol.cs
- WebConfigManager.cs
- DataGridViewCellLinkedList.cs
- ZipIORawDataFileBlock.cs
- System.Data.OracleClient_BID.cs
- CodeAttributeArgumentCollection.cs
- AppDomainShutdownMonitor.cs
- Publisher.cs
- SourceElementsCollection.cs
- DbParameterHelper.cs
- PaintEvent.cs
- WorkerRequest.cs
- DataGridViewColumnStateChangedEventArgs.cs
- ThicknessAnimation.cs
- ManagementObjectSearcher.cs
- PartialTrustHelpers.cs
- XmlEncoding.cs
- RNGCryptoServiceProvider.cs
- UnsafeMethods.cs
- Win32Exception.cs
- Unit.cs
- DocumentSchemaValidator.cs
- Inline.cs
- TextDecoration.cs
- X509ChainElement.cs
- ParameterCollection.cs
- COAUTHINFO.cs
- BrushValueSerializer.cs
- ConditionalAttribute.cs
- Permission.cs
- HealthMonitoringSection.cs
- WizardSideBarListControlItem.cs
- GPPOINT.cs
- XamlToRtfWriter.cs
- X509CertificateClaimSet.cs
- PenThreadWorker.cs
- ListBindingConverter.cs
- ToolStrip.cs
- Command.cs
- PartBasedPackageProperties.cs
- DelegateBodyWriter.cs
- DataGridViewRowConverter.cs
- DataTablePropertyDescriptor.cs
- GroupBoxDesigner.cs
- _SingleItemRequestCache.cs
- QueryTaskGroupState.cs
- XmlNavigatorFilter.cs
- Line.cs
- ToolStripDropTargetManager.cs
- Image.cs
- BulletChrome.cs
- ContextToken.cs
- tibetanshape.cs
- ObjectIDGenerator.cs
- SchemaExporter.cs
- ContentControl.cs
- WindowsListViewItem.cs
- ContextMenu.cs
- TdsParserSessionPool.cs
- RunWorkerCompletedEventArgs.cs
- SeekableReadStream.cs
- SpecialNameAttribute.cs
- QueryInterceptorAttribute.cs
- BaseContextMenu.cs
- FilteredAttributeCollection.cs
- Timer.cs
- RowToParametersTransformer.cs
- grammarelement.cs
- TextTreeDeleteContentUndoUnit.cs
- MediaTimeline.cs
- RemotingService.cs
- ParameterSubsegment.cs
- TakeQueryOptionExpression.cs
- WebPartEventArgs.cs
- CharEntityEncoderFallback.cs
- TagNameToTypeMapper.cs
- LocalizedNameDescriptionPair.cs
- CommonObjectSecurity.cs
- AppSettingsSection.cs
- CodePageEncoding.cs
- BaseAppDomainProtocolHandler.cs
- SqlNotificationEventArgs.cs
- ElementNotEnabledException.cs
- Empty.cs
- Validator.cs
- DecimalConstantAttribute.cs
- TypeUsageBuilder.cs
- CodeRemoveEventStatement.cs
- ClipboardData.cs
- StorageScalarPropertyMapping.cs