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
- EventSinkHelperWriter.cs
- Module.cs
- SymmetricAlgorithm.cs
- SupportingTokenSecurityTokenResolver.cs
- ColumnMapVisitor.cs
- BlobPersonalizationState.cs
- validation.cs
- BamlResourceSerializer.cs
- SqlRemoveConstantOrderBy.cs
- AutomationPatternInfo.cs
- ImageField.cs
- PublisherMembershipCondition.cs
- ToolStripDropDown.cs
- DbCommandDefinition.cs
- SourceSwitch.cs
- Transform.cs
- SplineKeyFrames.cs
- Propagator.JoinPropagator.cs
- ResourceLoader.cs
- PathParser.cs
- HtmlSelect.cs
- Point3DIndependentAnimationStorage.cs
- DecoratedNameAttribute.cs
- SqlMultiplexer.cs
- diagnosticsswitches.cs
- MachineKeyConverter.cs
- RenderingBiasValidation.cs
- ping.cs
- ListViewSelectEventArgs.cs
- CellLabel.cs
- GlyphElement.cs
- NegotiateStream.cs
- Pointer.cs
- CustomValidator.cs
- XDRSchema.cs
- WSUtilitySpecificationVersion.cs
- DbParameterHelper.cs
- ImplicitInputBrush.cs
- PopOutPanel.cs
- StringSorter.cs
- OleDbCommand.cs
- ZoneButton.cs
- Menu.cs
- PasswordTextNavigator.cs
- SimplePropertyEntry.cs
- SmiMetaDataProperty.cs
- Visual.cs
- PolicyStatement.cs
- CodeRemoveEventStatement.cs
- ComponentCommands.cs
- SerializableAttribute.cs
- RectValueSerializer.cs
- NativeMethods.cs
- TableRow.cs
- HtmlShim.cs
- NegatedConstant.cs
- DbConnectionPool.cs
- MemberMaps.cs
- D3DImage.cs
- SQLBoolean.cs
- TdsParserHelperClasses.cs
- TextMarkerSource.cs
- LocalFileSettingsProvider.cs
- remotingproxy.cs
- FamilyMapCollection.cs
- CalculatedColumn.cs
- MgmtConfigurationRecord.cs
- CacheDict.cs
- KeyedPriorityQueue.cs
- TextRangeEdit.cs
- Color.cs
- CounterCreationDataCollection.cs
- ObsoleteAttribute.cs
- StandardCommands.cs
- Timeline.cs
- Point3DCollectionConverter.cs
- ArrayExtension.cs
- KnowledgeBase.cs
- Keywords.cs
- SearchForVirtualItemEventArgs.cs
- XmlSchemaProviderAttribute.cs
- VariableAction.cs
- TargetControlTypeCache.cs
- _Win32.cs
- ConfigurationValidatorBase.cs
- NativeMethods.cs
- IriParsingElement.cs
- DirectoryObjectSecurity.cs
- RemotingHelper.cs
- BitmapFrameEncode.cs
- EncoderNLS.cs
- OleDbStruct.cs
- EncodingDataItem.cs
- EntityDataSourceEntityTypeFilterConverter.cs
- JulianCalendar.cs
- SqlCacheDependency.cs
- IgnoreFileBuildProvider.cs
- DataGridViewRowConverter.cs
- Int16Storage.cs
- SourceLineInfo.cs