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
- XmlElementAttribute.cs
- LogicalExpr.cs
- JpegBitmapDecoder.cs
- _ShellExpression.cs
- ContentHostHelper.cs
- TransformerInfoCollection.cs
- DbParameterHelper.cs
- DataTrigger.cs
- ListViewItem.cs
- CacheEntry.cs
- TextEncodedRawTextWriter.cs
- MethodExecutor.cs
- dtdvalidator.cs
- ObjectStateManager.cs
- KnownAssembliesSet.cs
- NotSupportedException.cs
- SelfIssuedAuthAsymmetricKey.cs
- DataTablePropertyDescriptor.cs
- TreeNode.cs
- XmlDeclaration.cs
- ScriptRef.cs
- TransformGroup.cs
- PagerSettings.cs
- ApplyTemplatesAction.cs
- ViewGenerator.cs
- Form.cs
- ObfuscationAttribute.cs
- SequentialOutput.cs
- BamlLocalizableResource.cs
- ColumnWidthChangedEvent.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- HtmlMeta.cs
- TextDecorations.cs
- ControlCachePolicy.cs
- Speller.cs
- DivideByZeroException.cs
- InputScopeAttribute.cs
- SuspendDesigner.cs
- WaitHandle.cs
- SmtpException.cs
- GridViewUpdateEventArgs.cs
- FieldAccessException.cs
- CompositeScriptReferenceEventArgs.cs
- ImageCreator.cs
- ThemeDictionaryExtension.cs
- DbModificationClause.cs
- ComboBoxAutomationPeer.cs
- EntityStoreSchemaFilterEntry.cs
- RbTree.cs
- WebBrowser.cs
- ActivityExecutionWorkItem.cs
- DefaultParameterValueAttribute.cs
- XmlAttributeCache.cs
- _ConnectionGroup.cs
- DeclarativeCatalogPartDesigner.cs
- SqlDataRecord.cs
- WebPartCollection.cs
- PieceDirectory.cs
- TableRowCollection.cs
- WebPartConnectionsEventArgs.cs
- OperandQuery.cs
- DBConnectionString.cs
- ObjectDataSourceDisposingEventArgs.cs
- DispatcherProcessingDisabled.cs
- MetabaseSettingsIis7.cs
- SkinBuilder.cs
- VisualStyleInformation.cs
- TogglePattern.cs
- DataGridViewLinkCell.cs
- Crc32.cs
- ResourceReferenceKeyNotFoundException.cs
- DataTableNewRowEvent.cs
- ControlUtil.cs
- MembershipPasswordException.cs
- DataGridTable.cs
- StreamGeometry.cs
- IProvider.cs
- LogicalExpressionTypeConverter.cs
- QueryOperationResponseOfT.cs
- PolicyChain.cs
- TreeViewHitTestInfo.cs
- OrthographicCamera.cs
- Transform3DGroup.cs
- NameGenerator.cs
- ChangeInterceptorAttribute.cs
- XhtmlBasicLinkAdapter.cs
- HttpListener.cs
- JapaneseLunisolarCalendar.cs
- ListenerAdapter.cs
- ConnectionManagementElementCollection.cs
- TextControl.cs
- SHA256Managed.cs
- FindCriteriaElement.cs
- ApplyImportsAction.cs
- XmlValidatingReader.cs
- Matrix.cs
- EnterpriseServicesHelper.cs
- ContextProperty.cs
- StringConverter.cs
- GestureRecognitionResult.cs