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
- ProjectedSlot.cs
- BitmapEffectInputConnector.cs
- LifetimeMonitor.cs
- AsyncOperationManager.cs
- TargetParameterCountException.cs
- ListViewItemEventArgs.cs
- configsystem.cs
- TTSEngineProxy.cs
- SerializationSectionGroup.cs
- OpenTypeLayoutCache.cs
- SafeUserTokenHandle.cs
- SelectiveScrollingGrid.cs
- KeyInterop.cs
- DynamicPhysicalDiscoSearcher.cs
- ToolboxService.cs
- SiteMapSection.cs
- IdentifierService.cs
- ToolStripManager.cs
- BufferedGraphicsContext.cs
- CellParaClient.cs
- PageContentAsyncResult.cs
- XmlSchemaSimpleType.cs
- NavigatorOutput.cs
- SectionXmlInfo.cs
- Button.cs
- GridLengthConverter.cs
- SwitchAttribute.cs
- StyleHelper.cs
- TryExpression.cs
- SafeNativeMethods.cs
- QueryResult.cs
- EdmMember.cs
- AttributeXamlType.cs
- NetSectionGroup.cs
- Point4DValueSerializer.cs
- PenContext.cs
- DrawingGroupDrawingContext.cs
- UnsupportedPolicyOptionsException.cs
- DependencyObject.cs
- Profiler.cs
- FormatConvertedBitmap.cs
- CacheEntry.cs
- JsonDataContract.cs
- Timer.cs
- CompilationRelaxations.cs
- ConstructorBuilder.cs
- WebPartEditVerb.cs
- DirectoryObjectSecurity.cs
- ClientProxyGenerator.cs
- DataRow.cs
- DataTemplateKey.cs
- XmlHierarchyData.cs
- SqlPersonalizationProvider.cs
- LoginView.cs
- controlskin.cs
- MethodCallConverter.cs
- FileAuthorizationModule.cs
- RegexCompiler.cs
- ResourceSetExpression.cs
- RectAnimationUsingKeyFrames.cs
- SecurityPermission.cs
- SQLBinaryStorage.cs
- FixedSOMContainer.cs
- Codec.cs
- __Filters.cs
- TextTreeRootNode.cs
- GroupBoxRenderer.cs
- FixedSOMTableRow.cs
- RemotingAttributes.cs
- ExplicitDiscriminatorMap.cs
- AnyAllSearchOperator.cs
- RTTypeWrapper.cs
- ReceiveActivityValidator.cs
- HwndHost.cs
- Misc.cs
- MethodAccessException.cs
- XmlSchemaObjectTable.cs
- DbParameterHelper.cs
- TransactionFlowBindingElementImporter.cs
- DispatcherHookEventArgs.cs
- PersistenceTypeAttribute.cs
- ScriptMethodAttribute.cs
- HttpVersion.cs
- ContentPlaceHolder.cs
- WebRequest.cs
- EdmSchemaAttribute.cs
- ToolStripSplitStackLayout.cs
- FolderBrowserDialog.cs
- XmlCountingReader.cs
- BooleanSwitch.cs
- AutoFocusStyle.xaml.cs
- ModifyActivitiesPropertyDescriptor.cs
- PolicyStatement.cs
- Cursor.cs
- DateBoldEvent.cs
- ToolZone.cs
- StatusBarDrawItemEvent.cs
- ImageSource.cs
- HotSpot.cs
- AsyncOperation.cs