Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataWeb / Server / System / Data / Services / Providers / RootProjectionNode.cs / 1305376 / RootProjectionNode.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // //// Represents the root of the projection tree // for queries with $expand and/or $select. // // // @owner [....] //--------------------------------------------------------------------- namespace System.Data.Services.Providers { #region Namespaces using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Linq.Expressions; #endregion ///Internal class which implements the root of the projection tree. ///This class is used to carry information required by our V1 providers /// to able able to fall back to the V1 behavior of using the [DebuggerDisplay("RootProjectionNode {PropertyName}")] internal class RootProjectionNode : ExpandedProjectionNode { #region Private fields ///interface. The collection of expand paths. ///Used by V1 providers to pass the V1 way of representing description /// of expands in the query to the private readonly List. expandPaths; /// The base resource type for all entities in this query. ///This is usually the base resource type of the resource set as well, /// but it can happen that it's a derived type of the resource set base type. private readonly ResourceType baseResourceType; #endregion #region Constructor ///Creates new root node for the projection tree. /// The resource set of the root level of the query. /// The ordering info for this node. null means no ordering to be applied. /// The filter for this node. null means no filter to be applied. /// Number of results to skip. null means no results to be skipped. /// Maximum number of results to return. null means return all available results. /// Maximum number of expected results. Hint that the provider should return /// at least maxResultsExpected + 1 results (if available). /// The list of expanded paths. /// The resource type for all entities in this query. internal RootProjectionNode( ResourceSetWrapper resourceSetWrapper, OrderingInfo orderingInfo, Expression filter, int? skipCount, int? takeCount, int? maxResultsExpected, ListexpandPaths, ResourceType baseResourceType) : base( String.Empty, null, resourceSetWrapper, orderingInfo, filter, skipCount, takeCount, maxResultsExpected) { Debug.Assert(baseResourceType != null, "baseResourceType != null"); this.expandPaths = expandPaths; this.baseResourceType = baseResourceType; } #endregion #region Internal properties /// The resource type in which all the entities expanded by this segment will be of. ///This is usually the resource type of the internal override ResourceType ResourceType { get { return this.baseResourceType; } } ///for this node, /// but it can also be a derived type of that resource type. /// This can happen if navigation property points to a resource set but uses a derived type. /// It can also happen if service operation returns entities from a given resource set /// but it returns derived types. The collection of expand paths. ///Used by V1 providers to pass the V1 way of representing description /// of expands in the query to the internal List. ExpandPaths { get { return this.expandPaths; } } /// Flag which is set when the ExpandPaths property should be used to determine the expanded /// properties to serialize instead of using the ProjectedNode tree. ///This flag is set if the old IExpandProvider was used to process expansions and thus it could have /// modified the ExpandPaths, in which case the serialization needs to use that to comply with the provider. /// Note that this can never be set to true if projections where used in the query, so in that case /// there's no possiblity for the ExpandPaths to differ from the ProjectedNode tree. /// If projections are in place, we only apply the expansion removal caused by "*" projection expressions /// to the tree and leave the ExpandPaths unaffected, as they should not be used in that case. internal bool UseExpandPathsForSerialization { get; set; } ///Flag used to mark that projections were used in the query. internal bool ProjectionsSpecified { get; set; } ///Returns true if there are any expansions in this tree. internal bool ExpansionsSpecified { get; set; } #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // //// Represents the root of the projection tree // for queries with $expand and/or $select. // // // @owner [....] //--------------------------------------------------------------------- namespace System.Data.Services.Providers { #region Namespaces using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Linq.Expressions; #endregion ///Internal class which implements the root of the projection tree. ///This class is used to carry information required by our V1 providers /// to able able to fall back to the V1 behavior of using the [DebuggerDisplay("RootProjectionNode {PropertyName}")] internal class RootProjectionNode : ExpandedProjectionNode { #region Private fields ///interface. The collection of expand paths. ///Used by V1 providers to pass the V1 way of representing description /// of expands in the query to the private readonly List. expandPaths; /// The base resource type for all entities in this query. ///This is usually the base resource type of the resource set as well, /// but it can happen that it's a derived type of the resource set base type. private readonly ResourceType baseResourceType; #endregion #region Constructor ///Creates new root node for the projection tree. /// The resource set of the root level of the query. /// The ordering info for this node. null means no ordering to be applied. /// The filter for this node. null means no filter to be applied. /// Number of results to skip. null means no results to be skipped. /// Maximum number of results to return. null means return all available results. /// Maximum number of expected results. Hint that the provider should return /// at least maxResultsExpected + 1 results (if available). /// The list of expanded paths. /// The resource type for all entities in this query. internal RootProjectionNode( ResourceSetWrapper resourceSetWrapper, OrderingInfo orderingInfo, Expression filter, int? skipCount, int? takeCount, int? maxResultsExpected, ListexpandPaths, ResourceType baseResourceType) : base( String.Empty, null, resourceSetWrapper, orderingInfo, filter, skipCount, takeCount, maxResultsExpected) { Debug.Assert(baseResourceType != null, "baseResourceType != null"); this.expandPaths = expandPaths; this.baseResourceType = baseResourceType; } #endregion #region Internal properties /// The resource type in which all the entities expanded by this segment will be of. ///This is usually the resource type of the internal override ResourceType ResourceType { get { return this.baseResourceType; } } ///for this node, /// but it can also be a derived type of that resource type. /// This can happen if navigation property points to a resource set but uses a derived type. /// It can also happen if service operation returns entities from a given resource set /// but it returns derived types. The collection of expand paths. ///Used by V1 providers to pass the V1 way of representing description /// of expands in the query to the internal List. ExpandPaths { get { return this.expandPaths; } } /// Flag which is set when the ExpandPaths property should be used to determine the expanded /// properties to serialize instead of using the ProjectedNode tree. ///This flag is set if the old IExpandProvider was used to process expansions and thus it could have /// modified the ExpandPaths, in which case the serialization needs to use that to comply with the provider. /// Note that this can never be set to true if projections where used in the query, so in that case /// there's no possiblity for the ExpandPaths to differ from the ProjectedNode tree. /// If projections are in place, we only apply the expansion removal caused by "*" projection expressions /// to the tree and leave the ExpandPaths unaffected, as they should not be used in that case. internal bool UseExpandPathsForSerialization { get; set; } ///Flag used to mark that projections were used in the query. internal bool ProjectionsSpecified { get; set; } ///Returns true if there are any expansions in this tree. internal bool ExpansionsSpecified { get; set; } #endregion } } // 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
- RoleService.cs
- MaterialGroup.cs
- LoginView.cs
- SqlConnectionHelper.cs
- Timer.cs
- IdentitySection.cs
- FormsAuthentication.cs
- TypefaceMetricsCache.cs
- EntityStoreSchemaGenerator.cs
- DataServiceProviderMethods.cs
- SerializationInfo.cs
- PresentationTraceSources.cs
- DataGridViewCheckBoxColumn.cs
- NamespaceCollection.cs
- ObjectDataSourceSelectingEventArgs.cs
- DocumentPage.cs
- BufferAllocator.cs
- EntityProxyTypeInfo.cs
- _LocalDataStoreMgr.cs
- SqlNotificationRequest.cs
- AddingNewEventArgs.cs
- StringCollectionMarkupSerializer.cs
- DisplayNameAttribute.cs
- XmlAttributeAttribute.cs
- CrossSiteScriptingValidation.cs
- HostProtectionException.cs
- TextBoxRenderer.cs
- TextRangeBase.cs
- UserUseLicenseDictionaryLoader.cs
- DrawingGroup.cs
- FileSystemInfo.cs
- MembershipSection.cs
- DiagnosticsConfiguration.cs
- ProxyGenerator.cs
- SqlConnectionHelper.cs
- FixedFindEngine.cs
- CodeNamespaceImport.cs
- TextParagraphCache.cs
- LinkButton.cs
- GPRECT.cs
- ResourceDictionary.cs
- AssemblySettingAttributes.cs
- CqlGenerator.cs
- XmlLanguage.cs
- CqlWriter.cs
- KeyPullup.cs
- WebPartConnectionCollection.cs
- UpDownEvent.cs
- MultiSelectRootGridEntry.cs
- TransportContext.cs
- ThousandthOfEmRealPoints.cs
- DataObjectEventArgs.cs
- RegistrySecurity.cs
- QueryResponse.cs
- MobileTemplatedControlDesigner.cs
- AbstractExpressions.cs
- MimeBasePart.cs
- FontDialog.cs
- LZCodec.cs
- DateTimePicker.cs
- _IPv4Address.cs
- ComponentChangingEvent.cs
- TextureBrush.cs
- PanelStyle.cs
- SourceChangedEventArgs.cs
- BuildProvider.cs
- SqlReferenceCollection.cs
- DataGridLinkButton.cs
- WebPartMenuStyle.cs
- DispatcherHooks.cs
- Mutex.cs
- PseudoWebRequest.cs
- XmlTypeMapping.cs
- ImportCatalogPart.cs
- DataGridAutoFormat.cs
- NativeWrapper.cs
- DesignBindingValueUIHandler.cs
- ToolBarButton.cs
- UiaCoreProviderApi.cs
- RowUpdatingEventArgs.cs
- ToolStripOverflowButton.cs
- WindowsGraphicsWrapper.cs
- Switch.cs
- DataExpression.cs
- ContainsRowNumberChecker.cs
- ResolveRequestResponseAsyncResult.cs
- ProxyAttribute.cs
- TaiwanCalendar.cs
- ADRoleFactoryConfiguration.cs
- RegexCaptureCollection.cs
- DataFieldEditor.cs
- Single.cs
- SafeRightsManagementHandle.cs
- OciEnlistContext.cs
- InputScope.cs
- PlaceHolder.cs
- TemplateControl.cs
- TransformCollection.cs
- Utils.cs
- WindowsServiceElement.cs