Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DLinq / Dlinq / SqlClient / Query / SqlAliasesReferenced.cs / 1305376 / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- StorageMappingFragment.cs
- MetafileHeaderWmf.cs
- SqlFunctionAttribute.cs
- DataSourceView.cs
- FormatConvertedBitmap.cs
- PrtTicket_Public.cs
- ObfuscationAttribute.cs
- DerivedKeyCachingSecurityTokenSerializer.cs
- ExceptionUtil.cs
- WebProxyScriptElement.cs
- Transform.cs
- UpdatePanel.cs
- FigureParagraph.cs
- SourceLineInfo.cs
- recordstatefactory.cs
- Double.cs
- SrgsGrammar.cs
- TrackingProfileCache.cs
- DecimalConverter.cs
- HtmlPageAdapter.cs
- _LocalDataStore.cs
- XsltOutput.cs
- ForwardPositionQuery.cs
- ResourceProperty.cs
- EntityObject.cs
- ExpressionWriter.cs
- CodeComment.cs
- ConfigurationSectionGroupCollection.cs
- ZoneButton.cs
- NameValueFileSectionHandler.cs
- XmlStreamStore.cs
- HeaderUtility.cs
- FileDialogCustomPlace.cs
- Bold.cs
- AppLevelCompilationSectionCache.cs
- ShapingEngine.cs
- StateInitializationDesigner.cs
- DeviceFilterEditorDialog.cs
- FormViewDeleteEventArgs.cs
- XmlNode.cs
- HandlerWithFactory.cs
- RNGCryptoServiceProvider.cs
- ImageButton.cs
- StrongNamePublicKeyBlob.cs
- HwndProxyElementProvider.cs
- xmlglyphRunInfo.cs
- IncrementalHitTester.cs
- HtmlElementErrorEventArgs.cs
- CommandExpr.cs
- Compensate.cs
- xmlsaver.cs
- LayoutTableCell.cs
- ListenerServiceInstallComponent.cs
- Queue.cs
- OleDbTransaction.cs
- RequestCachePolicy.cs
- _NTAuthentication.cs
- CallTemplateAction.cs
- Point.cs
- RecognizerStateChangedEventArgs.cs
- nulltextcontainer.cs
- ListBindingHelper.cs
- Mapping.cs
- ColumnBinding.cs
- XmlBufferReader.cs
- IIS7WorkerRequest.cs
- ListViewDataItem.cs
- SEHException.cs
- Properties.cs
- FontStretchConverter.cs
- Wildcard.cs
- WriteTimeStream.cs
- PropertyReferenceSerializer.cs
- Selection.cs
- NoClickablePointException.cs
- ObjectComplexPropertyMapping.cs
- IisTraceWebEventProvider.cs
- GridViewItemAutomationPeer.cs
- SubtreeProcessor.cs
- HandlerFactoryWrapper.cs
- WaveHeader.cs
- FileLogRecordEnumerator.cs
- ISSmlParser.cs
- InstallerTypeAttribute.cs
- HttpWebRequestElement.cs
- MorphHelper.cs
- ProcessHostConfigUtils.cs
- XamlDesignerSerializationManager.cs
- AggregateNode.cs
- ViewgenContext.cs
- PersianCalendar.cs
- WriteableBitmap.cs
- FindCriteriaElement.cs
- WebPartTransformerCollection.cs
- DataGridToolTip.cs
- ZoneIdentityPermission.cs
- CodeTypeMemberCollection.cs
- InstanceOwner.cs
- MtomMessageEncodingElement.cs
- RecognizedAudio.cs