Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataWeb / Client / System / Data / Services / Client / ALinq / NavigationPropertySingletonExpression.cs / 1305376 / NavigationPropertySingletonExpression.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // //// Respresents a navigation to a singleton property. // // // @owner [....] //--------------------------------------------------------------------- namespace System.Data.Services.Client { #region Private fields. using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Linq.Expressions; #endregion Private fields. ///Expression for a navigation property into a single entity (eg: Customer.BestFriend). internal class NavigationPropertySingletonExpression : ResourceExpression { #region Private fields. ///property member name private readonly Expression memberExpression; ///resource type private readonly Type resourceType; #endregion Private fields. ////// Creates a NavigationPropertySingletonExpression expression /// /// the return type of the expression /// the source expression /// property member name /// resource type for expression /// expand paths for resource set /// count option for the resource set /// custom query options for resourcse set /// projection expression internal NavigationPropertySingletonExpression(Type type, Expression source, Expression memberExpression, Type resourceType, ListexpandPaths, CountOption countOption, Dictionary customQueryOptions, ProjectionQueryOptionExpression projection) : base(source, (ExpressionType)ResourceExpressionType.ResourceNavigationPropertySingleton, type, expandPaths, countOption, customQueryOptions, projection) { Debug.Assert(memberExpression != null, "memberExpression != null"); Debug.Assert(resourceType != null, "resourceType != null"); this.memberExpression = memberExpression; this.resourceType = resourceType; } /// /// Gets the member expression. /// internal MemberExpression MemberExpression { get { return (MemberExpression)this.memberExpression; } } ////// The resource type of the singe instance produced by this singleton navigation. /// internal override Type ResourceType { get { return this.resourceType; } } ////// Singleton navigation properties always produce at most 1 result /// internal override bool IsSingleton { get { return true; } } ////// Does Singleton navigation have query options. /// internal override bool HasQueryOptions { get { return this.ExpandPaths.Count > 0 || this.CountOption == CountOption.InlineAll || this.CustomQueryOptions.Count > 0 || this.Projection != null; } } ////// Cast changes the type of the ResourceExpression /// /// new type ///new NavigationPropertySingletonExpression internal override ResourceExpression CreateCloneWithNewType(Type type) { return new NavigationPropertySingletonExpression( type, this.source, this.MemberExpression, TypeSystem.GetElementType(type), this.ExpandPaths.ToList(), this.CountOption, this.CustomQueryOptions.ToDictionary(kvp => kvp.Key, kvp => kvp.Value), this.Projection); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // //// Respresents a navigation to a singleton property. // // // @owner [....] //--------------------------------------------------------------------- namespace System.Data.Services.Client { #region Private fields. using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Linq.Expressions; #endregion Private fields. ///Expression for a navigation property into a single entity (eg: Customer.BestFriend). internal class NavigationPropertySingletonExpression : ResourceExpression { #region Private fields. ///property member name private readonly Expression memberExpression; ///resource type private readonly Type resourceType; #endregion Private fields. ////// Creates a NavigationPropertySingletonExpression expression /// /// the return type of the expression /// the source expression /// property member name /// resource type for expression /// expand paths for resource set /// count option for the resource set /// custom query options for resourcse set /// projection expression internal NavigationPropertySingletonExpression(Type type, Expression source, Expression memberExpression, Type resourceType, ListexpandPaths, CountOption countOption, Dictionary customQueryOptions, ProjectionQueryOptionExpression projection) : base(source, (ExpressionType)ResourceExpressionType.ResourceNavigationPropertySingleton, type, expandPaths, countOption, customQueryOptions, projection) { Debug.Assert(memberExpression != null, "memberExpression != null"); Debug.Assert(resourceType != null, "resourceType != null"); this.memberExpression = memberExpression; this.resourceType = resourceType; } /// /// Gets the member expression. /// internal MemberExpression MemberExpression { get { return (MemberExpression)this.memberExpression; } } ////// The resource type of the singe instance produced by this singleton navigation. /// internal override Type ResourceType { get { return this.resourceType; } } ////// Singleton navigation properties always produce at most 1 result /// internal override bool IsSingleton { get { return true; } } ////// Does Singleton navigation have query options. /// internal override bool HasQueryOptions { get { return this.ExpandPaths.Count > 0 || this.CountOption == CountOption.InlineAll || this.CustomQueryOptions.Count > 0 || this.Projection != null; } } ////// Cast changes the type of the ResourceExpression /// /// new type ///new NavigationPropertySingletonExpression internal override ResourceExpression CreateCloneWithNewType(Type type) { return new NavigationPropertySingletonExpression( type, this.source, this.MemberExpression, TypeSystem.GetElementType(type), this.ExpandPaths.ToList(), this.CountOption, this.CustomQueryOptions.ToDictionary(kvp => kvp.Key, kvp => kvp.Value), this.Projection); } } } // 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
- SamlSubjectStatement.cs
- RemoteWebConfigurationHostStream.cs
- ExeConfigurationFileMap.cs
- AdornerPresentationContext.cs
- SuppressMergeCheckAttribute.cs
- AdRotator.cs
- httpserverutility.cs
- coordinator.cs
- PropertyItemInternal.cs
- JpegBitmapDecoder.cs
- SetterBase.cs
- COMException.cs
- UriSectionData.cs
- TextParentUndoUnit.cs
- RightsManagementInformation.cs
- ExtensionDataReader.cs
- JumpTask.cs
- PhonemeConverter.cs
- Queue.cs
- TypeCollectionDesigner.xaml.cs
- XmlSerializerFormatAttribute.cs
- MenuItemStyle.cs
- WriteTimeStream.cs
- PasswordTextNavigator.cs
- WSSecurityJan2004.cs
- dataprotectionpermissionattribute.cs
- XmlToDatasetMap.cs
- EventLogQuery.cs
- SecurityKeyIdentifierClause.cs
- AffineTransform3D.cs
- BaseTemplateCodeDomTreeGenerator.cs
- LineServicesCallbacks.cs
- ScalarOps.cs
- ImageAttributes.cs
- XamlHostingConfiguration.cs
- EntityContainerAssociationSet.cs
- CLRBindingWorker.cs
- listitem.cs
- PermissionSetTriple.cs
- ConnectionDemuxer.cs
- NetworkAddressChange.cs
- DrawingVisualDrawingContext.cs
- BaseInfoTable.cs
- NavigationFailedEventArgs.cs
- SQLBinary.cs
- UnauthorizedAccessException.cs
- SqlConnectionStringBuilder.cs
- QueryStringParameter.cs
- Update.cs
- IgnoreFileBuildProvider.cs
- BitmapMetadataBlob.cs
- IsolatedStorageFile.cs
- FloatUtil.cs
- Renderer.cs
- LineBreakRecord.cs
- TypeConverterAttribute.cs
- CodeMemberEvent.cs
- ColorPalette.cs
- UpdateException.cs
- ReachFixedDocumentSerializer.cs
- PointAnimationBase.cs
- CalendarButtonAutomationPeer.cs
- Connector.cs
- OracleParameterBinding.cs
- FrameworkContextData.cs
- SecurityUtils.cs
- SqlExpander.cs
- PackageDigitalSignatureManager.cs
- VirtualPath.cs
- LinqDataSourceView.cs
- ContextStaticAttribute.cs
- DesignerVerbCollection.cs
- StringConverter.cs
- EventSinkHelperWriter.cs
- SapiRecognizer.cs
- FixedNode.cs
- SerializationAttributes.cs
- securitymgrsite.cs
- DesignerDataStoredProcedure.cs
- UnsafeNetInfoNativeMethods.cs
- DesignerDeviceConfig.cs
- ComplexObject.cs
- DocumentReferenceCollection.cs
- ImageIndexConverter.cs
- KeyValuePairs.cs
- ExceptionHandlers.cs
- ObjectViewFactory.cs
- DataGridComboBoxColumn.cs
- CodeFieldReferenceExpression.cs
- TdsRecordBufferSetter.cs
- ScrollItemPattern.cs
- DesignerAutoFormatCollection.cs
- ConnectionManagementElement.cs
- DetailsViewDeleteEventArgs.cs
- DrawingImage.cs
- PackWebRequest.cs
- PropertyTab.cs
- DataServiceSaveChangesEventArgs.cs
- Array.cs
- WebPartAuthorizationEventArgs.cs