Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DLinq / Dlinq / SqlClient / Query / SqlAliasesReferenced.cs / 1305376 / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TdsParserSessionPool.cs
- Method.cs
- TemplateControl.cs
- DuplicateWaitObjectException.cs
- StrongNameKeyPair.cs
- ClockController.cs
- __ComObject.cs
- QilDataSource.cs
- CustomErrorsSection.cs
- HandleCollector.cs
- MobileUITypeEditor.cs
- Geometry3D.cs
- DomainLiteralReader.cs
- ValidationHelpers.cs
- IndexerNameAttribute.cs
- EntityClientCacheEntry.cs
- TableRowCollection.cs
- DecimalSumAggregationOperator.cs
- WebBrowserContainer.cs
- WriteableOnDemandStream.cs
- SqlServer2KCompatibilityAnnotation.cs
- DataRecord.cs
- WindowsStatusBar.cs
- MetadataWorkspace.cs
- MarkupWriter.cs
- ButtonStandardAdapter.cs
- SystemPens.cs
- SmtpCommands.cs
- DllNotFoundException.cs
- TableRowGroup.cs
- ExpandedWrapper.cs
- SqlBuffer.cs
- RpcCryptoRequest.cs
- EditBehavior.cs
- VectorCollection.cs
- ModifierKeysConverter.cs
- PasswordTextContainer.cs
- UseManagedPresentationBindingElement.cs
- TemplatePropertyEntry.cs
- XmlEncoding.cs
- SspiSecurityTokenProvider.cs
- Documentation.cs
- SQLByteStorage.cs
- ECDiffieHellman.cs
- XmlIlVisitor.cs
- MarkupCompilePass1.cs
- ColorPalette.cs
- Function.cs
- Gdiplus.cs
- ProtectedConfigurationSection.cs
- UserInitiatedRoutedEventPermissionAttribute.cs
- XmlNodeList.cs
- HttpCacheVary.cs
- SafeHGlobalHandleCritical.cs
- DateTimeOffsetAdapter.cs
- Vector3DCollectionConverter.cs
- KernelTypeValidation.cs
- AssemblyBuilder.cs
- TableRowGroup.cs
- InvalidDataException.cs
- FileVersion.cs
- InputProcessorProfiles.cs
- UniqueID.cs
- Literal.cs
- Parameter.cs
- DictionaryKeyPropertyAttribute.cs
- Point3DAnimationUsingKeyFrames.cs
- XamlDesignerSerializationManager.cs
- ApplicationSecurityManager.cs
- oledbmetadatacolumnnames.cs
- SHA256Cng.cs
- ProfileService.cs
- Utils.cs
- MultiView.cs
- BitmapEffectGroup.cs
- UniqueIdentifierService.cs
- MappingItemCollection.cs
- SettingsPropertyNotFoundException.cs
- ScriptingSectionGroup.cs
- DefaultHttpHandler.cs
- ListenerTraceUtility.cs
- CharStorage.cs
- CustomAttributeSerializer.cs
- BitmapCodecInfo.cs
- DiscoveryVersionConverter.cs
- DetailsViewAutoFormat.cs
- DataGridViewRowCancelEventArgs.cs
- IPEndPoint.cs
- ShaderEffect.cs
- WriteableBitmap.cs
- BitmapFrameDecode.cs
- ValueConversionAttribute.cs
- SubMenuStyleCollection.cs
- TextElement.cs
- SamlAssertionDirectKeyIdentifierClause.cs
- FrameworkElementFactory.cs
- sqlpipe.cs
- ToolStripPanel.cs
- ValueQuery.cs
- ProfilePropertySettings.cs