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
- ReferentialConstraintRoleElement.cs
- XPathDescendantIterator.cs
- ArgumentNullException.cs
- XmlSchemaSimpleTypeRestriction.cs
- MemoryMappedFile.cs
- CodeAccessPermission.cs
- TreeViewHitTestInfo.cs
- HttpGetProtocolReflector.cs
- GroupDescription.cs
- __ComObject.cs
- ScriptingScriptResourceHandlerSection.cs
- DataColumnSelectionConverter.cs
- MetadataItemEmitter.cs
- SettingsPropertyValueCollection.cs
- InputManager.cs
- FocusTracker.cs
- ImpersonateTokenRef.cs
- Clipboard.cs
- SqlParameterCollection.cs
- ListViewInsertionMark.cs
- LogicalExpr.cs
- NullableFloatAverageAggregationOperator.cs
- Monitor.cs
- PropertyMetadata.cs
- ConfigXmlDocument.cs
- Msec.cs
- LogicalExpr.cs
- HttpModuleAction.cs
- QueryAsyncResult.cs
- LinkLabel.cs
- HtmlFormWrapper.cs
- QilExpression.cs
- AudioFormatConverter.cs
- WebConfigurationHostFileChange.cs
- TabletCollection.cs
- ToggleProviderWrapper.cs
- JsonSerializer.cs
- TextEvent.cs
- CompilerTypeWithParams.cs
- BitmapEffectGroup.cs
- ToolStripControlHost.cs
- WebBrowsableAttribute.cs
- RawStylusInputCustomData.cs
- InvalidateEvent.cs
- DataFormats.cs
- IndexedGlyphRun.cs
- LogicalExpr.cs
- HttpPostedFile.cs
- baseaxisquery.cs
- ReaderContextStackData.cs
- QueueException.cs
- XPathBuilder.cs
- MailBnfHelper.cs
- HwndAppCommandInputProvider.cs
- Rectangle.cs
- SessionPageStateSection.cs
- CodeEntryPointMethod.cs
- XmlHierarchicalDataSourceView.cs
- CloseCollectionAsyncResult.cs
- ToolStripItemTextRenderEventArgs.cs
- InstanceData.cs
- ConsumerConnectionPointCollection.cs
- AffineTransform3D.cs
- AutoGeneratedFieldProperties.cs
- StorageMappingFragment.cs
- TransformCryptoHandle.cs
- ProfileParameter.cs
- AxWrapperGen.cs
- PropertyTabAttribute.cs
- StickyNoteContentControl.cs
- PageParser.cs
- DataGridViewColumnTypeEditor.cs
- AuthenticationServiceManager.cs
- BindToObject.cs
- PageSettings.cs
- WebBrowserContainer.cs
- GeometryModel3D.cs
- SqlCacheDependencySection.cs
- BinHexDecoder.cs
- XPathDocument.cs
- JavaScriptObjectDeserializer.cs
- Win32KeyboardDevice.cs
- TableLayoutRowStyleCollection.cs
- OciLobLocator.cs
- BorderGapMaskConverter.cs
- StreamGeometry.cs
- BrushValueSerializer.cs
- GridViewRow.cs
- LinkDesigner.cs
- CodeRemoveEventStatement.cs
- EntityContainer.cs
- CollectionViewGroupInternal.cs
- OpenFileDialog.cs
- EndpointAddressProcessor.cs
- contentDescriptor.cs
- Int64AnimationBase.cs
- ResourcesGenerator.cs
- PanelStyle.cs
- PropertyGroupDescription.cs
- WebBrowserPermission.cs