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
- StringUtil.cs
- BasePropertyDescriptor.cs
- DbConnectionHelper.cs
- EntityContainerEntitySet.cs
- WorkflowServiceHost.cs
- HttpWebResponse.cs
- EmptyWorkItem.cs
- ParenthesizePropertyNameAttribute.cs
- NewArrayExpression.cs
- Metafile.cs
- InstanceDescriptor.cs
- DocumentSchemaValidator.cs
- InternalControlCollection.cs
- CacheChildrenQuery.cs
- ExpressionList.cs
- IssuedTokenClientBehaviorsElementCollection.cs
- DynamicPropertyHolder.cs
- SpeechDetectedEventArgs.cs
- ExtensionFile.cs
- CompositionTarget.cs
- PrimitiveDataContract.cs
- BindingsCollection.cs
- ConditionalWeakTable.cs
- LeaseManager.cs
- RequestQueue.cs
- WebBodyFormatMessageProperty.cs
- OverflowException.cs
- PartitionedStreamMerger.cs
- TargetConverter.cs
- NavigationProgressEventArgs.cs
- SmiGettersStream.cs
- TableCellCollection.cs
- ClientTargetCollection.cs
- Geometry.cs
- XmlILAnnotation.cs
- GetMemberBinder.cs
- PrinterUnitConvert.cs
- NetSectionGroup.cs
- XPathBinder.cs
- AssemblyNameProxy.cs
- x509store.cs
- DragAssistanceManager.cs
- FileInfo.cs
- Matrix3DStack.cs
- UIElementParaClient.cs
- DataGridRowEventArgs.cs
- EmbeddedMailObject.cs
- TailPinnedEventArgs.cs
- DataSet.cs
- DbExpressionRules.cs
- MsmqInputChannelListener.cs
- OuterGlowBitmapEffect.cs
- RegexCompiler.cs
- BaseTemplateBuildProvider.cs
- CommandPlan.cs
- DependencyObjectPropertyDescriptor.cs
- UserControl.cs
- ImageCollectionEditor.cs
- XmlSchemaCompilationSettings.cs
- XmlSerializableReader.cs
- httpserverutility.cs
- CategoryNameCollection.cs
- InternalConfigRoot.cs
- CompiledELinqQueryState.cs
- Int32AnimationBase.cs
- MissingMemberException.cs
- PerformanceCountersElement.cs
- FormsIdentity.cs
- HtmlContainerControl.cs
- FormsAuthenticationEventArgs.cs
- CopyCodeAction.cs
- Int16KeyFrameCollection.cs
- ImmComposition.cs
- ScriptManagerProxy.cs
- MD5.cs
- ConfigurationLocationCollection.cs
- OrderedEnumerableRowCollection.cs
- NextPreviousPagerField.cs
- ProxyHwnd.cs
- Timer.cs
- NonVisualControlAttribute.cs
- GridViewRowEventArgs.cs
- XmlSchemaGroupRef.cs
- GlyphRun.cs
- BamlResourceDeserializer.cs
- Util.cs
- ParameterElement.cs
- ResourcePermissionBaseEntry.cs
- XPathMessageFilterTable.cs
- RouteParameter.cs
- DataSet.cs
- ConstraintManager.cs
- OutputCacheModule.cs
- ProcessModelInfo.cs
- ListCollectionView.cs
- Errors.cs
- Not.cs
- EllipseGeometry.cs
- CalendarAutomationPeer.cs
- OptimizedTemplateContentHelper.cs