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
- DescendantBaseQuery.cs
- CqlLexer.cs
- ProcessHostServerConfig.cs
- PerformanceCounterPermissionEntryCollection.cs
- TemplateColumn.cs
- PreservationFileReader.cs
- TextCompositionManager.cs
- BreakSafeBase.cs
- RSAPKCS1SignatureFormatter.cs
- XmlSecureResolver.cs
- HttpWebResponse.cs
- EdmMember.cs
- LicFileLicenseProvider.cs
- NetworkInformationPermission.cs
- UnknownBitmapEncoder.cs
- FreezableCollection.cs
- IOException.cs
- UnsafeNetInfoNativeMethods.cs
- EventLogPermissionEntry.cs
- filewebresponse.cs
- CodeBinaryOperatorExpression.cs
- ImageBrush.cs
- MailAddressParser.cs
- HtmlEncodedRawTextWriter.cs
- RadioButtonRenderer.cs
- CheckBox.cs
- DefaultClaimSet.cs
- TouchEventArgs.cs
- DBConcurrencyException.cs
- WorkflowViewService.cs
- ClientOptions.cs
- AssemblyUtil.cs
- IncrementalHitTester.cs
- XPathSelectionIterator.cs
- Cursor.cs
- AssemblyGen.cs
- ReturnValue.cs
- ValueOfAction.cs
- MatrixUtil.cs
- ProcessProtocolHandler.cs
- NetworkAddressChange.cs
- GridViewCommandEventArgs.cs
- TypeElementCollection.cs
- KnowledgeBase.cs
- BindableTemplateBuilder.cs
- TextTreeFixupNode.cs
- XmlSerializationGeneratedCode.cs
- Stopwatch.cs
- StylusPointPropertyId.cs
- XmlLanguageConverter.cs
- ToolStripItem.cs
- SqlMethods.cs
- InstanceKeyNotReadyException.cs
- _SecureChannel.cs
- MobileUITypeEditor.cs
- RootProfilePropertySettingsCollection.cs
- FormViewInsertEventArgs.cs
- ITextView.cs
- View.cs
- safelink.cs
- DataSourceExpression.cs
- SafeMILHandleMemoryPressure.cs
- ZipIOCentralDirectoryDigitalSignature.cs
- MetabaseServerConfig.cs
- CheckBoxRenderer.cs
- BamlBinaryReader.cs
- XmlSiteMapProvider.cs
- ProcessModelSection.cs
- EditorZoneBase.cs
- EntityDesignerUtils.cs
- FragmentNavigationEventArgs.cs
- CommentEmitter.cs
- ReferencedCollectionType.cs
- SelectionRangeConverter.cs
- XPathBuilder.cs
- RuntimeConfigLKG.cs
- TextElementEnumerator.cs
- DataContractSerializerOperationBehavior.cs
- SqlReorderer.cs
- AspNetCacheProfileAttribute.cs
- EditorPartDesigner.cs
- SafeNativeMemoryHandle.cs
- SqlBulkCopy.cs
- StringWriter.cs
- InteropBitmapSource.cs
- IpcPort.cs
- DeploymentExceptionMapper.cs
- util.cs
- ZipIOExtraField.cs
- formatter.cs
- TextContainerChangedEventArgs.cs
- SQLByteStorage.cs
- SoapFaultCodes.cs
- FixedTextContainer.cs
- Material.cs
- ListBindingConverter.cs
- CustomErrorsSection.cs
- MarkerProperties.cs
- COM2PropertyPageUITypeConverter.cs
- ConstraintConverter.cs