Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- ValidationPropertyAttribute.cs
- DataGridViewColumnCollection.cs
- FtpWebResponse.cs
- DynamicFilterExpression.cs
- AccessDataSource.cs
- FileSystemEnumerable.cs
- ComponentManagerBroker.cs
- RelatedEnd.cs
- LinearKeyFrames.cs
- StylusPointProperty.cs
- ScaleTransform.cs
- MD5CryptoServiceProvider.cs
- FixedDSBuilder.cs
- RuntimeCompatibilityAttribute.cs
- LayoutTable.cs
- UnsafeNativeMethods.cs
- XmlSerializationGeneratedCode.cs
- MDIWindowDialog.cs
- FixUp.cs
- FixedSOMElement.cs
- ExcCanonicalXml.cs
- RefExpr.cs
- QilSortKey.cs
- ConfigViewGenerator.cs
- Directory.cs
- GridLength.cs
- StringUtil.cs
- FormattedTextSymbols.cs
- HttpResponseInternalWrapper.cs
- XmlSchemaComplexContent.cs
- EventRecord.cs
- IsolatedStorageFileStream.cs
- TimeSpanValidator.cs
- ContextStaticAttribute.cs
- ComboBoxRenderer.cs
- ExpressionBuilder.cs
- TraceFilter.cs
- TypeSystemProvider.cs
- TextServicesCompartment.cs
- ProjectionCamera.cs
- ToolboxItemAttribute.cs
- ReferencedAssembly.cs
- SortableBindingList.cs
- PrintPreviewControl.cs
- RefreshPropertiesAttribute.cs
- CellTreeNodeVisitors.cs
- XmlDataDocument.cs
- Rijndael.cs
- ArrayTypeMismatchException.cs
- XsltContext.cs
- GeometryModel3D.cs
- MembershipSection.cs
- BlobPersonalizationState.cs
- ObjectContext.cs
- WebPartDisplayModeCancelEventArgs.cs
- LocalizationParserHooks.cs
- ControlCollection.cs
- GridViewSortEventArgs.cs
- NonSerializedAttribute.cs
- FileChangeNotifier.cs
- LineBreakRecord.cs
- PaperSize.cs
- TextBoxAutomationPeer.cs
- WriteTimeStream.cs
- ParameterToken.cs
- ThreadExceptionDialog.cs
- BuildManager.cs
- TreeNodeClickEventArgs.cs
- EntitySqlQueryCacheEntry.cs
- XPathChildIterator.cs
- FieldNameLookup.cs
- EventRouteFactory.cs
- SortQueryOperator.cs
- MethodCallTranslator.cs
- ConsoleKeyInfo.cs
- XmlSchemaSimpleContent.cs
- ContourSegment.cs
- TreeView.cs
- ServiceModelEnumValidatorAttribute.cs
- HtmlElement.cs
- DetailsViewAutoFormat.cs
- TextLineBreak.cs
- OrderedEnumerableRowCollection.cs
- altserialization.cs
- ParsedAttributeCollection.cs
- OdbcConnectionFactory.cs
- ObjectHandle.cs
- Rfc2898DeriveBytes.cs
- SqlSelectStatement.cs
- DrawingGroupDrawingContext.cs
- StringValueConverter.cs
- ArgumentException.cs
- MemberAssignment.cs
- WorkflowHostingResponseContext.cs
- HtmlAnchor.cs
- TextParaClient.cs
- ParenthesizePropertyNameAttribute.cs
- BinaryConverter.cs
- ButtonBaseAutomationPeer.cs
- EntityDesignerUtils.cs