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
- WebServiceMethodData.cs
- RemotingSurrogateSelector.cs
- BaseDataListComponentEditor.cs
- WebPartDescription.cs
- BindStream.cs
- EventProvider.cs
- ToolStripRendererSwitcher.cs
- RunClient.cs
- XPathEmptyIterator.cs
- GridViewDeleteEventArgs.cs
- indexingfiltermarshaler.cs
- TextElementCollectionHelper.cs
- XmlCodeExporter.cs
- OleDbPermission.cs
- BCLDebug.cs
- SafeFileMappingHandle.cs
- XPathNodePointer.cs
- ZipIOCentralDirectoryBlock.cs
- DataGridSortingEventArgs.cs
- OutputCache.cs
- WindowsListViewSubItem.cs
- XPathNavigator.cs
- FormatterConverter.cs
- OneOfTypeConst.cs
- DataGridViewTopLeftHeaderCell.cs
- XmlSchemaExternal.cs
- BezierSegment.cs
- LinearGradientBrush.cs
- SqlProfileProvider.cs
- AdCreatedEventArgs.cs
- SqlTriggerAttribute.cs
- ToolboxComponentsCreatingEventArgs.cs
- XsltArgumentList.cs
- LoginUtil.cs
- WmlFormAdapter.cs
- DataRowChangeEvent.cs
- FixedSOMTableCell.cs
- ClientTargetSection.cs
- Utils.cs
- WindowsButton.cs
- ViewStateModeByIdAttribute.cs
- RawStylusActions.cs
- TemplateBuilder.cs
- TextRangeEditLists.cs
- SourceFileInfo.cs
- CodeTypeDeclaration.cs
- CodeGenHelper.cs
- DataGridViewEditingControlShowingEventArgs.cs
- ControlCommandSet.cs
- EmbeddedMailObjectsCollection.cs
- LambdaCompiler.Unary.cs
- XmlNamedNodeMap.cs
- ApplicationManager.cs
- PersonalizationStateInfoCollection.cs
- FrugalList.cs
- Pipe.cs
- InternalMappingException.cs
- SkinIDTypeConverter.cs
- Section.cs
- ObjectDataSourceFilteringEventArgs.cs
- FieldDescriptor.cs
- EventLogPermissionAttribute.cs
- WpfXamlType.cs
- DataBinding.cs
- DirectionalLight.cs
- ConfigurationException.cs
- AdRotatorDesigner.cs
- DrawingDrawingContext.cs
- MailSettingsSection.cs
- PointCollectionConverter.cs
- CancelEventArgs.cs
- AlternationConverter.cs
- SourceElementsCollection.cs
- StrokeCollection2.cs
- MatrixAnimationUsingKeyFrames.cs
- DelegatingTypeDescriptionProvider.cs
- HtmlInputPassword.cs
- LayoutExceptionEventArgs.cs
- ClassHandlersStore.cs
- WSAddressing10ProblemHeaderQNameFault.cs
- GuidConverter.cs
- RtfFormatStack.cs
- ProtocolReflector.cs
- HideDisabledControlAdapter.cs
- IDQuery.cs
- ConstraintEnumerator.cs
- XMLSchema.cs
- DataServiceExpressionVisitor.cs
- CommandID.cs
- Quack.cs
- DefaultSection.cs
- SqlDataAdapter.cs
- DisplayMemberTemplateSelector.cs
- TextParaLineResult.cs
- TextOnlyOutput.cs
- KeyedCollection.cs
- PartialCachingControl.cs
- FlowDocumentScrollViewer.cs
- CompilerState.cs
- Trigger.cs