Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataWeb / Client / System / Data / Services / Client / ALinq / DataServiceExpressionVisitor.cs / 1305376 / DataServiceExpressionVisitor.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // //// Expression Visitors for Linq to URI translator // // // @owner [....] //--------------------------------------------------------------------- namespace System.Data.Services.Client { #region Namespaces. using System.Diagnostics; using System.Linq.Expressions; #endregion Namespaces. ////// Specific Vistior base class for the DataServiceQueryProvider. /// internal abstract class DataServiceALinqExpressionVisitor : ALinqExpressionVisitor { ////// Main visit method. /// /// Expression to visit ///Visited expression internal override Expression Visit(Expression exp) { if (exp == null) { return null; } switch ((ResourceExpressionType)exp.NodeType) { case ResourceExpressionType.RootResourceSet: case ResourceExpressionType.ResourceNavigationProperty: return this.VisitResourceSetExpression((ResourceSetExpression)exp); case ResourceExpressionType.ResourceNavigationPropertySingleton: return this.VisitNavigationPropertySingletonExpression((NavigationPropertySingletonExpression)exp); case ResourceExpressionType.InputReference: return this.VisitInputReferenceExpression((InputReferenceExpression)exp); default: return base.Visit(exp); } } ////// ResourceSetExpression visit method. /// /// ResourceSetExpression expression to visit ///Visited ResourceSetExpression expression internal virtual Expression VisitResourceSetExpression(ResourceSetExpression rse) { Expression source = this.Visit(rse.Source); if (source != rse.Source) { rse = new ResourceSetExpression(rse.Type, source, rse.MemberExpression, rse.ResourceType, rse.ExpandPaths, rse.CountOption, rse.CustomQueryOptions, rse.Projection); } return rse; } ////// NavigationPropertySingletonExpressionvisit method. /// /// NavigationPropertySingletonExpression expression to visit ///Visited NavigationPropertySingletonExpression expression internal virtual Expression VisitNavigationPropertySingletonExpression(NavigationPropertySingletonExpression npse) { Expression source = this.Visit(npse.Source); if (source != npse.Source) { npse = new NavigationPropertySingletonExpression(npse.Type, source, npse.MemberExpression, npse.MemberExpression.Type, npse.ExpandPaths, npse.CountOption, npse.CustomQueryOptions, npse.Projection); } return npse; } ////// Visit an /// InputReferenceExpression expression to visit ///, producing a new InputReferenceExpression /// based on the visited form of the that is referenced by /// the InputReferenceExpression argument, . /// Visited InputReferenceExpression expression internal virtual Expression VisitInputReferenceExpression(InputReferenceExpression ire) { Debug.Assert(ire != null, "ire != null -- otherwise caller never should have visited here"); ResourceExpression re = (ResourceExpression)this.Visit(ire.Target); return re.CreateReference(); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- UserControl.cs
- UnsafeNativeMethods.cs
- BitmapSource.cs
- RenderData.cs
- _Win32.cs
- DataList.cs
- RepeatBehaviorConverter.cs
- Color.cs
- CustomValidator.cs
- MailMessage.cs
- TextEncodedRawTextWriter.cs
- DbTransaction.cs
- SecurityProtocolFactory.cs
- _AuthenticationState.cs
- DurationConverter.cs
- Atom10FormatterFactory.cs
- HasCopySemanticsAttribute.cs
- BufferModeSettings.cs
- Application.cs
- ColorAnimation.cs
- TextRunCacheImp.cs
- BitmapEffectInput.cs
- ReferentialConstraint.cs
- TemplateParser.cs
- Button.cs
- CmsInterop.cs
- RegexWorker.cs
- XmlUrlResolver.cs
- InstancePersistenceContext.cs
- EntityDescriptor.cs
- SocketException.cs
- ManagedFilter.cs
- ListenDesigner.cs
- EdmItemError.cs
- DataViewSettingCollection.cs
- ErrorTableItemStyle.cs
- XmlTextReader.cs
- translator.cs
- HttpPostedFile.cs
- ConvertEvent.cs
- ConfigXmlComment.cs
- ConfigDefinitionUpdates.cs
- InstanceCollisionException.cs
- DrawingContextWalker.cs
- TextRunCacheImp.cs
- Unit.cs
- DataGridColumn.cs
- Hyperlink.cs
- DataGridViewRowHeaderCell.cs
- XPathSingletonIterator.cs
- XPathNavigator.cs
- XPathBinder.cs
- ToolStripProgressBar.cs
- RpcCryptoRequest.cs
- SystemColors.cs
- ThicknessAnimation.cs
- SystemInfo.cs
- ExpressionBuilder.cs
- MobileErrorInfo.cs
- DropShadowEffect.cs
- PathNode.cs
- ResourceContainer.cs
- CreateUserWizardStep.cs
- XsltException.cs
- WebPartsSection.cs
- PartitionedStreamMerger.cs
- AttributeParameterInfo.cs
- DataPager.cs
- GPRECT.cs
- TimelineGroup.cs
- ListViewHitTestInfo.cs
- TextSelectionProcessor.cs
- SqlConnectionFactory.cs
- MarshalByValueComponent.cs
- InteropExecutor.cs
- TCEAdapterGenerator.cs
- DoubleStorage.cs
- LiteralControl.cs
- IOException.cs
- StatusStrip.cs
- TransportContext.cs
- XPathNavigatorKeyComparer.cs
- RegexParser.cs
- ControlBindingsCollection.cs
- RectAnimationClockResource.cs
- ByteStreamBufferedMessageData.cs
- ZoneMembershipCondition.cs
- HashStream.cs
- MessageProperties.cs
- NativeBuffer.cs
- FileSecurity.cs
- Route.cs
- Compress.cs
- WebHeaderCollection.cs
- Enum.cs
- AsyncCodeActivity.cs
- PersonalizationState.cs
- __ConsoleStream.cs
- Label.cs
- SqlSelectStatement.cs