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
- DataGridViewIntLinkedList.cs
- SingletonInstanceContextProvider.cs
- CheckableControlBaseAdapter.cs
- SqlServices.cs
- EntityDataSourceDataSelection.cs
- DEREncoding.cs
- ProcessInputEventArgs.cs
- DecimalKeyFrameCollection.cs
- Perspective.cs
- UpdatePanelTriggerCollection.cs
- ResourcePermissionBaseEntry.cs
- EntityDataSourceChangingEventArgs.cs
- LinqDataSourceContextEventArgs.cs
- IISMapPath.cs
- HttpModulesSection.cs
- DecimalAnimation.cs
- OleDbCommand.cs
- ControlDesignerState.cs
- RoleService.cs
- OptimisticConcurrencyException.cs
- Inflater.cs
- XmlSchemaComplexType.cs
- NameValueSectionHandler.cs
- ThemeDictionaryExtension.cs
- EmptyEnumerator.cs
- FormatConvertedBitmap.cs
- PeerValidationBehavior.cs
- WebServiceHandler.cs
- GridProviderWrapper.cs
- LabelTarget.cs
- CodeGotoStatement.cs
- SqlCommand.cs
- CellNormalizer.cs
- Input.cs
- CollectionsUtil.cs
- AssociationType.cs
- SqlWriter.cs
- BuildProvider.cs
- DiagnosticsConfigurationHandler.cs
- FamilyMap.cs
- SlipBehavior.cs
- HostVisual.cs
- DoubleAnimationBase.cs
- BoundingRectTracker.cs
- ToolboxItemCollection.cs
- SQLInt32Storage.cs
- ButtonFieldBase.cs
- Authorization.cs
- XmlTextEncoder.cs
- Lease.cs
- StringAttributeCollection.cs
- CodeAttributeArgumentCollection.cs
- EntityCommand.cs
- NonSerializedAttribute.cs
- HtmlDocument.cs
- DataBindingExpressionBuilder.cs
- ArcSegment.cs
- AsymmetricKeyExchangeDeformatter.cs
- SessionState.cs
- MultiTrigger.cs
- ThemeDictionaryExtension.cs
- SQLDouble.cs
- CodePageUtils.cs
- FileUpload.cs
- FontFamily.cs
- WsiProfilesElement.cs
- LogWriteRestartAreaAsyncResult.cs
- CurrencyWrapper.cs
- WpfGeneratedKnownTypes.cs
- Odbc32.cs
- SelectionPatternIdentifiers.cs
- HeaderCollection.cs
- ProcessThread.cs
- MultiViewDesigner.cs
- TextTreeInsertElementUndoUnit.cs
- PeerNearMe.cs
- CodeTypeMember.cs
- SqlUtils.cs
- MenuRendererStandards.cs
- XmlResolver.cs
- UndoManager.cs
- DefaultWorkflowTransactionService.cs
- DataPagerField.cs
- OdbcConnectionString.cs
- JsonQueryStringConverter.cs
- DictationGrammar.cs
- Comparer.cs
- EmptyControlCollection.cs
- DesignerActionListCollection.cs
- LockCookie.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- Rotation3DKeyFrameCollection.cs
- PathSegmentCollection.cs
- PasswordBox.cs
- SQLStringStorage.cs
- EncryptedReference.cs
- ECDiffieHellmanCng.cs
- DataControlImageButton.cs
- AuthenticationSection.cs
- ReadingWritingEntityEventArgs.cs