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
- XmlWriter.cs
- Axis.cs
- File.cs
- FixedTextContainer.cs
- XpsFilter.cs
- InstallerTypeAttribute.cs
- Literal.cs
- XPathParser.cs
- ProbeDuplex11AsyncResult.cs
- ImportDesigner.xaml.cs
- BaseTreeIterator.cs
- SecurityKeyType.cs
- ValidatingPropertiesEventArgs.cs
- XmlSerializationGeneratedCode.cs
- ZipIOBlockManager.cs
- DataServiceHostWrapper.cs
- ConfigXmlReader.cs
- TextTreeNode.cs
- UriExt.cs
- ListViewEditEventArgs.cs
- ObjectDataSourceStatusEventArgs.cs
- ConnectionsZoneDesigner.cs
- DBParameter.cs
- AsymmetricKeyExchangeFormatter.cs
- UnsafeNativeMethodsCLR.cs
- ISessionStateStore.cs
- HyperlinkAutomationPeer.cs
- SqlLiftWhereClauses.cs
- ApplicationServiceManager.cs
- OLEDB_Util.cs
- webclient.cs
- RoleManagerEventArgs.cs
- DbUpdateCommandTree.cs
- SecurityProtocolFactory.cs
- Stream.cs
- TextEmbeddedObject.cs
- ObjectListFieldsPage.cs
- TraceEventCache.cs
- OutputCacheProfile.cs
- DateTimeUtil.cs
- VariantWrapper.cs
- DataListItemCollection.cs
- SystemWebCachingSectionGroup.cs
- RegionData.cs
- DSASignatureDeformatter.cs
- TextRunCacheImp.cs
- ScriptManager.cs
- ServiceContractAttribute.cs
- WorkflowMessageEventArgs.cs
- PropertyDescriptorGridEntry.cs
- DbConnectionClosed.cs
- ConnectionModeReader.cs
- RsaElement.cs
- ObjectIDGenerator.cs
- FileCodeGroup.cs
- VScrollProperties.cs
- FaultImportOptions.cs
- ISSmlParser.cs
- DefaultTextStoreTextComposition.cs
- TextRangeSerialization.cs
- CircleHotSpot.cs
- SqlHelper.cs
- TextTreeTextBlock.cs
- SolidBrush.cs
- WebHeaderCollection.cs
- InvalidOperationException.cs
- ThreadExceptionEvent.cs
- BindingExpressionBase.cs
- JsonReaderWriterFactory.cs
- DocumentScope.cs
- ButtonColumn.cs
- DbProviderManifest.cs
- ColorAnimation.cs
- EntityContainerEntitySet.cs
- CroppedBitmap.cs
- ContentHostHelper.cs
- SchemaSetCompiler.cs
- DocumentGridPage.cs
- ImageInfo.cs
- ConfigXmlSignificantWhitespace.cs
- TaskFileService.cs
- Table.cs
- IncrementalHitTester.cs
- TdsParserSafeHandles.cs
- FileDialogCustomPlace.cs
- DataSourceXmlSerializationAttribute.cs
- XmlUtf8RawTextWriter.cs
- Helper.cs
- CroppedBitmap.cs
- ListViewGroup.cs
- DataServiceRequestException.cs
- TextSelectionHelper.cs
- VectorAnimationBase.cs
- ConfigurationManagerInternal.cs
- Rect3D.cs
- IndicShape.cs
- XmlDocumentFragment.cs
- AdCreatedEventArgs.cs
- RichTextBoxConstants.cs
- XmlParserContext.cs