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
- ToolTipService.cs
- WebBrowser.cs
- WorkflowInspectionServices.cs
- UTF7Encoding.cs
- SerializableAttribute.cs
- AsymmetricAlgorithm.cs
- SessionSymmetricMessageSecurityProtocolFactory.cs
- EventLogQuery.cs
- AutomationPropertyInfo.cs
- ThreadStateException.cs
- SqlUtil.cs
- RegexGroupCollection.cs
- CatalogZone.cs
- MobileRedirect.cs
- PropertyEmitterBase.cs
- DataControlFieldCollection.cs
- WsdlContractConversionContext.cs
- GB18030Encoding.cs
- ExplicitDiscriminatorMap.cs
- InfoCardSymmetricAlgorithm.cs
- _NestedSingleAsyncResult.cs
- GeometryModel3D.cs
- BinaryWriter.cs
- ExtensionFile.cs
- DataGridViewLinkCell.cs
- FollowerQueueCreator.cs
- HandlerFactoryWrapper.cs
- StylusPointDescription.cs
- JsonReader.cs
- DisposableCollectionWrapper.cs
- SerializationObjectManager.cs
- ObjectTag.cs
- DataBinder.cs
- WindowsIdentity.cs
- Binding.cs
- MouseBinding.cs
- remotingproxy.cs
- CompositeControl.cs
- X509Certificate.cs
- XmlDeclaration.cs
- Validator.cs
- SmtpNtlmAuthenticationModule.cs
- CellPartitioner.cs
- ExecutionScope.cs
- ObjectDataSourceStatusEventArgs.cs
- RSAPKCS1SignatureFormatter.cs
- WebSysDefaultValueAttribute.cs
- Monitor.cs
- AppDomainUnloadedException.cs
- OleDbStruct.cs
- SqlDataSourceDesigner.cs
- ControlAdapter.cs
- RecognizedWordUnit.cs
- oledbmetadatacolumnnames.cs
- graph.cs
- ScrollBar.cs
- ReadOnlyDataSourceView.cs
- AsymmetricKeyExchangeFormatter.cs
- MultiSelectRootGridEntry.cs
- UIElement3D.cs
- updateconfighost.cs
- Filter.cs
- TextContainerChangeEventArgs.cs
- RenderData.cs
- COM2IProvidePropertyBuilderHandler.cs
- RecognitionResult.cs
- CmsUtils.cs
- ExtendLockCommand.cs
- Line.cs
- HtmlPhoneCallAdapter.cs
- exports.cs
- WindowsUpDown.cs
- DataGridViewCheckBoxColumn.cs
- ObjectDataSourceChooseTypePanel.cs
- DataSourceNameHandler.cs
- KnownTypesHelper.cs
- XmlSchemaAttribute.cs
- _Events.cs
- QuaternionRotation3D.cs
- FormViewInsertEventArgs.cs
- MailAddressCollection.cs
- JsonReaderWriterFactory.cs
- PassportAuthentication.cs
- TranslateTransform.cs
- ProcessThread.cs
- COM2FontConverter.cs
- InternalConfigRoot.cs
- BasicExpressionVisitor.cs
- PersistenceTypeAttribute.cs
- _FtpDataStream.cs
- TypeValidationEventArgs.cs
- CompressedStack.cs
- StrongNameKeyPair.cs
- _SslSessionsCache.cs
- XmlSerializationReader.cs
- DesigntimeLicenseContext.cs
- MaskInputRejectedEventArgs.cs
- InternalCache.cs
- SQLDouble.cs
- FunctionNode.cs