Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- RouteParser.cs
- NewItemsContextMenuStrip.cs
- NumberEdit.cs
- InstanceDataCollection.cs
- SqlPersistenceWorkflowInstanceDescription.cs
- HotSpot.cs
- SimpleApplicationHost.cs
- HttpCapabilitiesBase.cs
- ColorPalette.cs
- WinEventWrap.cs
- TransportConfigurationTypeElementCollection.cs
- EdmRelationshipNavigationPropertyAttribute.cs
- ObsoleteAttribute.cs
- CaseStatement.cs
- OleDbReferenceCollection.cs
- ExtensionQuery.cs
- QuaternionConverter.cs
- CaseInsensitiveOrdinalStringComparer.cs
- ThreadStateException.cs
- DurableMessageDispatchInspector.cs
- CodeAssignStatement.cs
- GradientStop.cs
- ConfigXmlAttribute.cs
- ObjectStateManagerMetadata.cs
- Tag.cs
- OLEDB_Util.cs
- ActivityWithResult.cs
- LaxModeSecurityHeaderElementInferenceEngine.cs
- UrlRoutingHandler.cs
- BlurBitmapEffect.cs
- InternalResources.cs
- DependentList.cs
- PerformanceCounterManager.cs
- ContentWrapperAttribute.cs
- MetafileHeader.cs
- OrderedDictionary.cs
- DataGridViewAccessibleObject.cs
- LassoHelper.cs
- CodeExporter.cs
- XmlSchemaParticle.cs
- XPathDocumentNavigator.cs
- SchemaObjectWriter.cs
- SingleKeyFrameCollection.cs
- NetDataContractSerializer.cs
- SafeEventLogWriteHandle.cs
- RSAPKCS1SignatureFormatter.cs
- listitem.cs
- PasswordTextNavigator.cs
- IImplicitResourceProvider.cs
- NodeLabelEditEvent.cs
- DependencyObjectPropertyDescriptor.cs
- AxHost.cs
- FontFaceLayoutInfo.cs
- XmlChildEnumerator.cs
- RuleSettingsCollection.cs
- xdrvalidator.cs
- SizeAnimationBase.cs
- UrlMappingCollection.cs
- EditorZone.cs
- RootNamespaceAttribute.cs
- CalendarDesigner.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- FileFormatException.cs
- TextTreeExtractElementUndoUnit.cs
- DefaultExpressionVisitor.cs
- GroupBoxRenderer.cs
- Base64Encoding.cs
- SQLMoneyStorage.cs
- FolderBrowserDialog.cs
- ExpressionVisitor.cs
- WbemException.cs
- ProfileParameter.cs
- Material.cs
- Point4D.cs
- DesignTimeVisibleAttribute.cs
- ToolStripContainerActionList.cs
- dataprotectionpermissionattribute.cs
- HttpNamespaceReservationInstallComponent.cs
- DataFieldEditor.cs
- ApplicationServiceHelper.cs
- WebPartDisplayModeEventArgs.cs
- WsrmMessageInfo.cs
- Accessible.cs
- TextRange.cs
- LinqDataSourceDisposeEventArgs.cs
- BindingCompleteEventArgs.cs
- FirstMatchCodeGroup.cs
- ConfigDefinitionUpdates.cs
- precedingsibling.cs
- webproxy.cs
- ObservableDictionary.cs
- loginstatus.cs
- RefreshResponseInfo.cs
- HtmlImage.cs
- Span.cs
- InertiaTranslationBehavior.cs
- PnrpPermission.cs
- EnvelopedSignatureTransform.cs
- XPathSingletonIterator.cs
- MetadataCollection.cs