Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Boolean.cs
- GatewayDefinition.cs
- DataGridViewSortCompareEventArgs.cs
- TextDecorationCollectionConverter.cs
- Executor.cs
- BitmapEffectInput.cs
- Collection.cs
- ReachFixedPageSerializer.cs
- NativeCompoundFileAPIs.cs
- SupportsEventValidationAttribute.cs
- SimpleExpression.cs
- StrokeIntersection.cs
- DataGridColumnCollectionEditor.cs
- DataGridViewAutoSizeColumnModeEventArgs.cs
- HandlerBase.cs
- InvokePattern.cs
- PlainXmlSerializer.cs
- RepeaterCommandEventArgs.cs
- AttachedAnnotation.cs
- ApplicationBuildProvider.cs
- WindowsAuthenticationModule.cs
- XmlSchemaInferenceException.cs
- WindowsPen.cs
- ColumnPropertiesGroup.cs
- HWStack.cs
- MultipartContentParser.cs
- RectKeyFrameCollection.cs
- EnumMember.cs
- DataQuery.cs
- ServerValidateEventArgs.cs
- PropertyChangeTracker.cs
- WebPartRestoreVerb.cs
- Debug.cs
- EntityFrameworkVersions.cs
- ChtmlTextWriter.cs
- DbParameterCollectionHelper.cs
- Resources.Designer.cs
- TypeForwardedToAttribute.cs
- ListBoxDesigner.cs
- Win32MouseDevice.cs
- StylusButtonEventArgs.cs
- EndpointInfoCollection.cs
- AccessDataSource.cs
- DataRowCollection.cs
- XmlRawWriter.cs
- TreeNodeStyle.cs
- SqlTriggerAttribute.cs
- DbConnectionClosed.cs
- PrintDocument.cs
- ITextView.cs
- RegexCode.cs
- AddInAdapter.cs
- ContainsRowNumberChecker.cs
- IPGlobalProperties.cs
- TaiwanLunisolarCalendar.cs
- XPathMultyIterator.cs
- PropertyToken.cs
- TransactionInformation.cs
- ByteKeyFrameCollection.cs
- ValueUtilsSmi.cs
- IncomingWebRequestContext.cs
- RegionIterator.cs
- EventWaitHandleSecurity.cs
- BindingOperations.cs
- WebPartsSection.cs
- PolyQuadraticBezierSegment.cs
- WebZone.cs
- Mapping.cs
- GiveFeedbackEvent.cs
- SizeKeyFrameCollection.cs
- OutputCacheModule.cs
- EdmConstants.cs
- WindowsToolbarAsMenu.cs
- DataGridColumnHeaderCollection.cs
- InlinedLocationReference.cs
- DLinqAssociationProvider.cs
- ConfigurationStrings.cs
- ZipIORawDataFileBlock.cs
- PersonalizationStateQuery.cs
- SymbolType.cs
- DocumentPageView.cs
- GridEntry.cs
- HttpCookie.cs
- TypeUtil.cs
- XmlSchemaComplexType.cs
- RefExpr.cs
- PriorityQueue.cs
- TextView.cs
- ReflectionHelper.cs
- TextEditorSelection.cs
- EncryptedPackageFilter.cs
- LinqDataSourceInsertEventArgs.cs
- DbDataRecord.cs
- ExtendedPropertyCollection.cs
- InertiaTranslationBehavior.cs
- EUCJPEncoding.cs
- HtmlInputControl.cs
- NotSupportedException.cs
- SecurityUtils.cs
- SqlClientWrapperSmiStreamChars.cs