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
- WebPartsPersonalizationAuthorization.cs
- DeclarativeCatalogPartDesigner.cs
- EntityDataSourceEntitySetNameItem.cs
- SafeNativeMethods.cs
- InstanceContextManager.cs
- ChannelListenerBase.cs
- DefaultValidator.cs
- QueueProcessor.cs
- ComponentDispatcherThread.cs
- EnumerableValidator.cs
- Color.cs
- MSAAWinEventWrap.cs
- SynchronizedInputPattern.cs
- ADConnectionHelper.cs
- ImageClickEventArgs.cs
- RenderCapability.cs
- OperationAbortedException.cs
- RequiredFieldValidator.cs
- Polyline.cs
- HandlerMappingMemo.cs
- SystemWebCachingSectionGroup.cs
- HttpBufferlessInputStream.cs
- TemplateControlParser.cs
- FileVersionInfo.cs
- PingReply.cs
- Parameter.cs
- Material.cs
- SafeBitVector32.cs
- TextProperties.cs
- ClientOptions.cs
- CompositeScriptReference.cs
- SQLInt16.cs
- AsymmetricSignatureDeformatter.cs
- WebPartVerb.cs
- XDRSchema.cs
- RawContentTypeMapper.cs
- CultureInfoConverter.cs
- sapiproxy.cs
- CompensatableTransactionScopeActivityDesigner.cs
- ResourceExpression.cs
- UnmanagedMarshal.cs
- DataGridTablesFactory.cs
- ActivityExecutorOperation.cs
- EndPoint.cs
- Cursor.cs
- _CommandStream.cs
- BaseCollection.cs
- PageParser.cs
- ChannelManager.cs
- JoinTreeNode.cs
- DllNotFoundException.cs
- Merger.cs
- ParentUndoUnit.cs
- DataGridViewRowStateChangedEventArgs.cs
- ControlIdConverter.cs
- SpecularMaterial.cs
- LookupNode.cs
- MouseActionValueSerializer.cs
- MasterPageParser.cs
- ChannelServices.cs
- QuaternionAnimation.cs
- DockingAttribute.cs
- ObsoleteAttribute.cs
- PartialTrustValidationBehavior.cs
- CodeThrowExceptionStatement.cs
- Pen.cs
- HtmlButton.cs
- SchemaLookupTable.cs
- ImpersonationContext.cs
- ToolStripItemGlyph.cs
- ImageMetadata.cs
- WindowsRebar.cs
- WhitespaceRuleReader.cs
- JsonDataContract.cs
- SetterBase.cs
- ResetableIterator.cs
- CheckBox.cs
- HighContrastHelper.cs
- CodeNamespaceImportCollection.cs
- SelectionEditor.cs
- TextEditorTyping.cs
- AssemblyNameEqualityComparer.cs
- ping.cs
- Selector.cs
- SafeNativeMethods.cs
- StylusEditingBehavior.cs
- RadioButtonPopupAdapter.cs
- StringValueSerializer.cs
- AgileSafeNativeMemoryHandle.cs
- ImageSourceValueSerializer.cs
- ChangePassword.cs
- BitmapEffectCollection.cs
- MetadataArtifactLoaderXmlReaderWrapper.cs
- Menu.cs
- ObjectSelectorEditor.cs
- SapiRecoContext.cs
- WebPartDescription.cs
- DynamicActivity.cs
- AttachedPropertyBrowsableAttribute.cs
- CapabilitiesUse.cs