Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataWeb / Client / System / Data / Services / Client / LinkDescriptor.cs / 1305376 / LinkDescriptor.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // //// represents the association between two entities // //--------------------------------------------------------------------- namespace System.Data.Services.Client { using System.Diagnostics; ////// represents the association between two entities /// [DebuggerDisplay("State = {state}")] public sealed class LinkDescriptor : Descriptor { #region Fields ///equivalence comparer internal static readonly System.Collections.Generic.IEqualityComparerEquivalenceComparer = new Equivalent(); /// source entity private object source; ///name of property on source entity that references the target entity private string sourceProperty; ///target entity private object target; #endregion ////// Constructor /// /// Source entity /// Navigation property on the source entity /// Target entity internal LinkDescriptor(object source, string sourceProperty, object target) : this(source, sourceProperty, target, EntityStates.Unchanged) { } ////// Constructor /// /// Source entity /// Navigation property on the source entity /// Target entity /// The link state internal LinkDescriptor(object source, string sourceProperty, object target, EntityStates state) : base(state) { this.source = source; this.sourceProperty = sourceProperty; this.target = target; } #region Public Properties ///target entity public object Target { get { return this.target; } } ///source entity public object Source { get { return this.source; } } ///name of property on source entity that references the target entity public string SourceProperty { get { return this.sourceProperty; } } #endregion ///this is a link internal override bool IsResource { get { return false; } } ////// If the current instance of link descriptor is equivalent to the parameters supplied /// /// The source entity /// The source property name /// The target entity ///true if equivalent internal bool IsEquivalent(object src, string srcPropName, object targ) { return (this.source == src && this.target == targ && this.sourceProperty == srcPropName); } ///equivalence comparer private sealed class Equivalent : System.Collections.Generic.IEqualityComparer{ /// are two LinkDescriptors equivalent, ignore state /// link descriptor x /// link descriptor y ///true if equivalent public bool Equals(LinkDescriptor x, LinkDescriptor y) { return (null != x) && (null != y) && x.IsEquivalent(y.source, y.sourceProperty, y.target); } ///compute hashcode for LinkDescriptor /// link descriptor ///hashcode public int GetHashCode(LinkDescriptor obj) { return (null != obj) ? (obj.Source.GetHashCode() ^ ((null != obj.Target) ? obj.Target.GetHashCode() : 0) ^ obj.SourceProperty.GetHashCode()) : 0; } } } } // 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
- ZipIOLocalFileDataDescriptor.cs
- SimpleWorkerRequest.cs
- RequestCacheValidator.cs
- DesignerDataTableBase.cs
- AutomationProperties.cs
- TextReturnReader.cs
- ListBoxItemAutomationPeer.cs
- ProviderMetadataCachedInformation.cs
- ChannelDispatcherBase.cs
- Keywords.cs
- PeerTransportElement.cs
- Update.cs
- ArgumentOutOfRangeException.cs
- UrlMappingsSection.cs
- DataServiceHost.cs
- Constants.cs
- RuleRef.cs
- ImageField.cs
- DomNameTable.cs
- AspCompat.cs
- XsdValidatingReader.cs
- URI.cs
- UserPersonalizationStateInfo.cs
- URL.cs
- PropertyCondition.cs
- StrokeNodeOperations.cs
- SystemMulticastIPAddressInformation.cs
- DataGridColumnReorderingEventArgs.cs
- DesignerDataRelationship.cs
- VisualTarget.cs
- ReadWriteObjectLock.cs
- CodeTypeReferenceCollection.cs
- SubordinateTransaction.cs
- OleDbError.cs
- ClientConfigurationSystem.cs
- OleDbSchemaGuid.cs
- ConvertEvent.cs
- ComplexPropertyEntry.cs
- PathGeometry.cs
- ViewManager.cs
- ContentValidator.cs
- ZipIOExtraField.cs
- SiteMapDesignerDataSourceView.cs
- CannotUnloadAppDomainException.cs
- ConnectionPointCookie.cs
- WhitespaceReader.cs
- StoreContentChangedEventArgs.cs
- WeakReadOnlyCollection.cs
- UriTemplatePathPartiallyEquivalentSet.cs
- UrlPath.cs
- IdnElement.cs
- LoginStatusDesigner.cs
- MediaTimeline.cs
- AmbientLight.cs
- SoapHeaderAttribute.cs
- DataRelationPropertyDescriptor.cs
- CodeBinaryOperatorExpression.cs
- ControlCollection.cs
- ManualResetEvent.cs
- PeerNearMe.cs
- HyperLinkStyle.cs
- CollectionViewSource.cs
- PrePostDescendentsWalker.cs
- PhysicalAddress.cs
- StreamGeometry.cs
- CodeTypeConstructor.cs
- XslAstAnalyzer.cs
- NativeRecognizer.cs
- StylusEditingBehavior.cs
- SqlBuilder.cs
- ObjectIDGenerator.cs
- _AuthenticationState.cs
- PropertyRef.cs
- SpellCheck.cs
- Parallel.cs
- RowToFieldTransformer.cs
- WebPartsSection.cs
- HwndHostAutomationPeer.cs
- RouteCollection.cs
- DbCommandTree.cs
- ThicknessConverter.cs
- DataBoundControlHelper.cs
- DataGridItemAutomationPeer.cs
- PaperSource.cs
- DataObjectFieldAttribute.cs
- InfoCardProofToken.cs
- SqlUserDefinedTypeAttribute.cs
- securestring.cs
- SelectionListDesigner.cs
- RijndaelManagedTransform.cs
- TemplateBuilder.cs
- PrimitiveXmlSerializers.cs
- Int64.cs
- PlatformNotSupportedException.cs
- DeploymentSection.cs
- OdbcParameterCollection.cs
- DecoderNLS.cs
- CustomPopupPlacement.cs
- OledbConnectionStringbuilder.cs
- EventData.cs