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
- SystemInfo.cs
- ReadOnlyPermissionSet.cs
- UserInitiatedRoutedEventPermission.cs
- TextCharacters.cs
- DesignerObjectListAdapter.cs
- mansign.cs
- FormsAuthenticationUser.cs
- TextContainerHelper.cs
- ResolveMatchesMessage11.cs
- WebBrowser.cs
- DesignTimeVisibleAttribute.cs
- MetricEntry.cs
- RightsManagementUser.cs
- TransformGroup.cs
- ServiceChannelFactory.cs
- GeneralTransform2DTo3DTo2D.cs
- ActivationArguments.cs
- DataSourceNameHandler.cs
- Trigger.cs
- RegistryHandle.cs
- DispatcherOperation.cs
- DispatchChannelSink.cs
- CodeCatchClause.cs
- FrameworkContentElement.cs
- PrincipalPermission.cs
- Base64Encoder.cs
- MergablePropertyAttribute.cs
- SkipStoryboardToFill.cs
- FixedSOMPageConstructor.cs
- _ConnectOverlappedAsyncResult.cs
- SmtpFailedRecipientException.cs
- SqlConnectionFactory.cs
- _SslStream.cs
- RijndaelCryptoServiceProvider.cs
- SafeFileMappingHandle.cs
- CqlGenerator.cs
- _SslState.cs
- TypeNameConverter.cs
- DispatcherHooks.cs
- AsyncDataRequest.cs
- Timer.cs
- CapabilitiesRule.cs
- Attributes.cs
- BatchServiceHost.cs
- ConstNode.cs
- PointAnimation.cs
- TransformerInfo.cs
- DoubleCollectionValueSerializer.cs
- LassoSelectionBehavior.cs
- SqlClientWrapperSmiStreamChars.cs
- XmlSchemaAttribute.cs
- GZipDecoder.cs
- Vector3DValueSerializer.cs
- SplineQuaternionKeyFrame.cs
- DesignSurfaceEvent.cs
- DataServiceContext.cs
- DownloadProgressEventArgs.cs
- SerialPinChanges.cs
- GlobalItem.cs
- DictionaryEntry.cs
- Hex.cs
- CellLabel.cs
- DesignTimeParseData.cs
- ComplexTypeEmitter.cs
- ColumnMapVisitor.cs
- WebContext.cs
- WebBodyFormatMessageProperty.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- TypeUtils.cs
- FixedSOMLineCollection.cs
- SizeAnimationUsingKeyFrames.cs
- XmlElementAttribute.cs
- EdmToObjectNamespaceMap.cs
- MsmqQueue.cs
- SafeRightsManagementEnvironmentHandle.cs
- ToolBarButtonDesigner.cs
- BaseCAMarshaler.cs
- CollectionViewProxy.cs
- GradientSpreadMethodValidation.cs
- Transform3D.cs
- HostingEnvironmentException.cs
- ChangeProcessor.cs
- Expander.cs
- ListViewItemCollectionEditor.cs
- StoreItemCollection.Loader.cs
- Grid.cs
- XmlQueryCardinality.cs
- Floater.cs
- SpeechRecognizer.cs
- wmiprovider.cs
- SessionStateItemCollection.cs
- CapabilitiesUse.cs
- ApplicationFileCodeDomTreeGenerator.cs
- DetailsView.cs
- _SSPIWrapper.cs
- ServiceNameElementCollection.cs
- FormViewDeletedEventArgs.cs
- GridViewRowCollection.cs
- OrderedDictionary.cs
- TypeDescriptionProviderAttribute.cs