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
- FileStream.cs
- SQLInt64Storage.cs
- StylusEventArgs.cs
- CompilerResults.cs
- QilDataSource.cs
- GifBitmapDecoder.cs
- ConfigXmlWhitespace.cs
- MultiViewDesigner.cs
- Point3DValueSerializer.cs
- FloatUtil.cs
- MulticastNotSupportedException.cs
- TimelineGroup.cs
- RealProxy.cs
- httpapplicationstate.cs
- LicenseManager.cs
- DbConnectionPoolCounters.cs
- QueryReaderSettings.cs
- ModuleBuilderData.cs
- EntityDesignerUtils.cs
- UIElement3D.cs
- MailWriter.cs
- DependencyPropertyChangedEventArgs.cs
- TextRangeBase.cs
- AttributeTableBuilder.cs
- CodeEventReferenceExpression.cs
- HashRepartitionStream.cs
- regiisutil.cs
- CollectionBuilder.cs
- CurrentChangingEventManager.cs
- StringFormat.cs
- ToolBarButtonClickEvent.cs
- MenuItemStyle.cs
- BindToObject.cs
- BindingValueChangedEventArgs.cs
- CatalogZone.cs
- Rfc4050KeyFormatter.cs
- Deflater.cs
- ResourceIDHelper.cs
- MessageDesigner.cs
- ArraySegment.cs
- WindowsSlider.cs
- ExpressionNormalizer.cs
- SocketSettings.cs
- DataGridDetailsPresenter.cs
- UnsafeNativeMethods.cs
- FontUnitConverter.cs
- ToolStripManager.cs
- SecureEnvironment.cs
- AliasedSlot.cs
- SqlExpressionNullability.cs
- TitleStyle.cs
- WindowCollection.cs
- DataGridRowClipboardEventArgs.cs
- CheckBoxAutomationPeer.cs
- ExpressionNode.cs
- EllipseGeometry.cs
- HtmlInputControl.cs
- XPathParser.cs
- Helpers.cs
- KoreanLunisolarCalendar.cs
- GroupItem.cs
- DocobjHost.cs
- ProxyGenerator.cs
- ItemList.cs
- SessionSwitchEventArgs.cs
- ObjectListItem.cs
- DataBindingExpressionBuilder.cs
- StorageComplexPropertyMapping.cs
- StaticTextPointer.cs
- FontNamesConverter.cs
- ApplicationFileParser.cs
- KeyFrames.cs
- CheckedPointers.cs
- TableLayoutStyleCollection.cs
- ContainerControl.cs
- Rotation3D.cs
- PropertyRecord.cs
- InfoCardRSAPKCS1KeyExchangeDeformatter.cs
- MetadataElement.cs
- BindStream.cs
- PolyBezierSegment.cs
- ResourcePool.cs
- CodeTypeConstructor.cs
- CodeObject.cs
- _DomainName.cs
- SystemBrushes.cs
- DBSchemaRow.cs
- ZoomingMessageFilter.cs
- sqlnorm.cs
- XmlBinaryReader.cs
- XmlHierarchicalEnumerable.cs
- DoubleConverter.cs
- WriteableBitmap.cs
- MatrixTransform.cs
- MemoryRecordBuffer.cs
- HasCopySemanticsAttribute.cs
- HebrewNumber.cs
- ResourceContainer.cs
- SettingsBase.cs
- GradientStopCollection.cs