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
- _SecureChannel.cs
- TextBlock.cs
- EventData.cs
- ConstrainedDataObject.cs
- TargetParameterCountException.cs
- COSERVERINFO.cs
- DtrList.cs
- CodeArrayIndexerExpression.cs
- BindingWorker.cs
- User.cs
- DPCustomTypeDescriptor.cs
- WebPartUserCapability.cs
- JoinElimination.cs
- TextBreakpoint.cs
- MaterialGroup.cs
- SqlNode.cs
- unsafenativemethodstextservices.cs
- Transform.cs
- PropertyInfoSet.cs
- SocketManager.cs
- ObjectListCommandEventArgs.cs
- UrlAuthorizationModule.cs
- RegistryConfigurationProvider.cs
- ServicePoint.cs
- DataControlImageButton.cs
- thaishape.cs
- WebBrowserBase.cs
- MainMenu.cs
- DragStartedEventArgs.cs
- EventRecord.cs
- Tokenizer.cs
- RangeValuePattern.cs
- DataContractFormatAttribute.cs
- HttpStreamMessageEncoderFactory.cs
- DockAndAnchorLayout.cs
- IItemContainerGenerator.cs
- DiffuseMaterial.cs
- DataGridViewCellCollection.cs
- RegexRunnerFactory.cs
- XmlWellformedWriter.cs
- OdbcParameter.cs
- FixedHyperLink.cs
- HandleRef.cs
- StreamingContext.cs
- SchemaCollectionPreprocessor.cs
- ObjectQueryExecutionPlan.cs
- LOSFormatter.cs
- WindowsAuthenticationEventArgs.cs
- EditingCoordinator.cs
- MarkerProperties.cs
- ClickablePoint.cs
- TimeoutConverter.cs
- TextDocumentView.cs
- StickyNote.cs
- FontResourceCache.cs
- SelectedCellsChangedEventArgs.cs
- UnionQueryOperator.cs
- CalendarDayButton.cs
- MediaScriptCommandRoutedEventArgs.cs
- IISMapPath.cs
- WebServiceErrorEvent.cs
- UInt64.cs
- SendParametersContent.cs
- AssociationTypeEmitter.cs
- PropertyEmitter.cs
- LoginDesignerUtil.cs
- XmlSchemaComplexType.cs
- DropDownButton.cs
- DetailsViewAutoFormat.cs
- BinaryMethodMessage.cs
- ZipIOLocalFileHeader.cs
- SchemaNotation.cs
- CalendarDataBindingHandler.cs
- ColorConverter.cs
- PointCollectionValueSerializer.cs
- SqlVersion.cs
- ExpandCollapsePattern.cs
- PolyLineSegmentFigureLogic.cs
- FileCodeGroup.cs
- InternalCache.cs
- PointCollection.cs
- CheckBoxField.cs
- TailCallAnalyzer.cs
- AlphaSortedEnumConverter.cs
- TraceListener.cs
- ArrayConverter.cs
- StandardBindingImporter.cs
- ProcessHost.cs
- cache.cs
- SrgsRulesCollection.cs
- SafeNativeMethods.cs
- Types.cs
- ConstraintEnumerator.cs
- Underline.cs
- VBIdentifierDesigner.xaml.cs
- MatrixConverter.cs
- Filter.cs
- ArrayEditor.cs
- ClientSettingsStore.cs
- FontConverter.cs