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
- EncoderParameters.cs
- Cursor.cs
- AssertHelper.cs
- ListenerSessionConnectionReader.cs
- _KerberosClient.cs
- Int16Converter.cs
- TranslateTransform.cs
- XmlIgnoreAttribute.cs
- NullableIntMinMaxAggregationOperator.cs
- RemotingServices.cs
- EntityUtil.cs
- RoleManagerEventArgs.cs
- Shape.cs
- Camera.cs
- OdbcConnection.cs
- StateItem.cs
- SettingsAttributes.cs
- AttachedPropertiesService.cs
- FloaterParaClient.cs
- ProgramNode.cs
- UTF7Encoding.cs
- PathParser.cs
- EventDescriptor.cs
- ImmutableObjectAttribute.cs
- ApplicationProxyInternal.cs
- SqlUdtInfo.cs
- OutOfProcStateClientManager.cs
- _HeaderInfoTable.cs
- StringStorage.cs
- DataSourceXmlSubItemAttribute.cs
- DbQueryCommandTree.cs
- SecurityHeaderElementInferenceEngine.cs
- SequentialUshortCollection.cs
- CodeTypeParameter.cs
- PageFunction.cs
- XmlDataDocument.cs
- DeploymentSection.cs
- PasswordDeriveBytes.cs
- Choices.cs
- QilXmlReader.cs
- TreeViewAutomationPeer.cs
- PerfCounters.cs
- XmlSerializerVersionAttribute.cs
- BamlMapTable.cs
- panel.cs
- TextRangeEdit.cs
- InstanceContextMode.cs
- ScalarOps.cs
- InputProviderSite.cs
- ModuleBuilderData.cs
- Queue.cs
- TrustManagerPromptUI.cs
- ProofTokenCryptoHandle.cs
- _Semaphore.cs
- MaskInputRejectedEventArgs.cs
- ObjectDataSourceEventArgs.cs
- DesignerSerializationOptionsAttribute.cs
- TemplateEditingFrame.cs
- FlowNode.cs
- WindowsFont.cs
- SimpleHandlerFactory.cs
- WindowsStatusBar.cs
- TextTrailingWordEllipsis.cs
- BamlStream.cs
- TreeNodeConverter.cs
- BitmapPalette.cs
- SiteMapSection.cs
- NumericExpr.cs
- GenericParameterDataContract.cs
- TableSectionStyle.cs
- RpcCryptoRequest.cs
- Propagator.JoinPropagator.JoinPredicateVisitor.cs
- SmtpDigestAuthenticationModule.cs
- Environment.cs
- ExtentCqlBlock.cs
- XmlILOptimizerVisitor.cs
- BinaryNode.cs
- SectionXmlInfo.cs
- ContentPlaceHolder.cs
- NotificationContext.cs
- SymDocumentType.cs
- COAUTHIDENTITY.cs
- SourceFileBuildProvider.cs
- TypeForwardedToAttribute.cs
- BookmarkScopeHandle.cs
- QueryReaderSettings.cs
- WebBrowserHelper.cs
- PersistenceContextEnlistment.cs
- TreeViewImageKeyConverter.cs
- AppearanceEditorPart.cs
- XmlSchemas.cs
- LineMetrics.cs
- HttpBrowserCapabilitiesWrapper.cs
- ModelTreeEnumerator.cs
- WebConfigurationManager.cs
- HttpCapabilitiesEvaluator.cs
- DrawItemEvent.cs
- DataObjectEventArgs.cs
- ViewManager.cs
- BrowserCapabilitiesCodeGenerator.cs