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
- DataGridTextBox.cs
- EntitySetDataBindingList.cs
- AddInDeploymentState.cs
- ScrollBar.cs
- _ScatterGatherBuffers.cs
- TemplatePagerField.cs
- DynamicRendererThreadManager.cs
- DataTransferEventArgs.cs
- QilSortKey.cs
- MouseButtonEventArgs.cs
- HtmlElementEventArgs.cs
- WindowClosedEventArgs.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- UriTemplateTrieNode.cs
- UnauthorizedAccessException.cs
- ObjectContextServiceProvider.cs
- DataListItem.cs
- UserPreferenceChangingEventArgs.cs
- While.cs
- DocumentGrid.cs
- StringUtil.cs
- SystemEvents.cs
- RangeExpression.cs
- HealthMonitoringSection.cs
- XmlAtomicValue.cs
- PassportAuthenticationEventArgs.cs
- Grid.cs
- StreamingContext.cs
- SafeCloseHandleCritical.cs
- EventLogPermissionEntry.cs
- EmptyReadOnlyDictionaryInternal.cs
- ListParagraph.cs
- ThreadStateException.cs
- WindowVisualStateTracker.cs
- BaseInfoTable.cs
- MatrixStack.cs
- TemplateControlCodeDomTreeGenerator.cs
- XmlNodeList.cs
- CodeArgumentReferenceExpression.cs
- NameScope.cs
- MailWriter.cs
- UnsafeNetInfoNativeMethods.cs
- DispatcherEventArgs.cs
- SessionStateContainer.cs
- SubtreeProcessor.cs
- PreviewPageInfo.cs
- HostExecutionContextManager.cs
- HelpEvent.cs
- LinqDataSourceHelper.cs
- SpeakCompletedEventArgs.cs
- InputProviderSite.cs
- BitSet.cs
- ComponentManagerBroker.cs
- LoginView.cs
- ExtensibleClassFactory.cs
- InkCollectionBehavior.cs
- PartialCachingAttribute.cs
- ParentControlDesigner.cs
- HttpException.cs
- Point.cs
- DispatcherOperation.cs
- MailBnfHelper.cs
- EntityTransaction.cs
- WSFederationHttpSecurityElement.cs
- BaseDataListDesigner.cs
- StretchValidation.cs
- SafeNativeMethods.cs
- EntityContainerEmitter.cs
- WebBaseEventKeyComparer.cs
- WebSysDisplayNameAttribute.cs
- DelayedRegex.cs
- MetadataHelper.cs
- ColumnResizeAdorner.cs
- XmlNavigatorStack.cs
- HeaderElement.cs
- IgnoreDeviceFilterElement.cs
- IPHostEntry.cs
- Evidence.cs
- XhtmlBasicPageAdapter.cs
- PolyLineSegment.cs
- HashRepartitionStream.cs
- SqlDataSourceFilteringEventArgs.cs
- ParameterCollection.cs
- RepeaterDesigner.cs
- CodeConditionStatement.cs
- ChangeBlockUndoRecord.cs
- _IPv4Address.cs
- OdbcFactory.cs
- EditingCoordinator.cs
- ColorTransform.cs
- ContentDisposition.cs
- DataRowChangeEvent.cs
- FullTextBreakpoint.cs
- SchemeSettingElementCollection.cs
- WebEvents.cs
- ByteArrayHelperWithString.cs
- TextRangeAdaptor.cs
- DbProviderServices.cs
- Vector3DConverter.cs
- ApplicationBuildProvider.cs