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
- controlskin.cs
- BitStack.cs
- HtmlTableRowCollection.cs
- MonitorWrapper.cs
- Rotation3DAnimation.cs
- UriExt.cs
- ParallelTimeline.cs
- WmfPlaceableFileHeader.cs
- TextFormatterHost.cs
- WebException.cs
- CompositionTarget.cs
- ElementAction.cs
- XmlCDATASection.cs
- MarshalByRefObject.cs
- WebPart.cs
- IDReferencePropertyAttribute.cs
- PropertyChangeTracker.cs
- SoapException.cs
- PrimitiveType.cs
- Tracking.cs
- OrderedDictionaryStateHelper.cs
- PropertyDescriptor.cs
- OdbcCommand.cs
- ProxyWebPartManager.cs
- dtdvalidator.cs
- TerminatorSinks.cs
- GlyphManager.cs
- UnsafeNativeMethods.cs
- TypeValidationEventArgs.cs
- InfoCardRSAOAEPKeyExchangeFormatter.cs
- WriteLineDesigner.xaml.cs
- DataGridPageChangedEventArgs.cs
- XmlSchemaNotation.cs
- XmlCompatibilityReader.cs
- DataGridRowHeader.cs
- ConfigurationSchemaErrors.cs
- QueryResponse.cs
- StreamHelper.cs
- DataBindingHandlerAttribute.cs
- HtmlInputRadioButton.cs
- SafeViewOfFileHandle.cs
- TypedRowHandler.cs
- ITextView.cs
- IPEndPointCollection.cs
- QueryContinueDragEventArgs.cs
- SqlCommandSet.cs
- StringInfo.cs
- BindingCollection.cs
- StrongBox.cs
- EntityDataSourceContainerNameItem.cs
- XMLUtil.cs
- SHA512Managed.cs
- FontResourceCache.cs
- AnimationLayer.cs
- SignedXmlDebugLog.cs
- LeftCellWrapper.cs
- Viewport3DVisual.cs
- OdbcError.cs
- ApplicationHost.cs
- ErrorEventArgs.cs
- BridgeDataRecord.cs
- LoadMessageLogger.cs
- PolicyManager.cs
- NativeMethods.cs
- TextFindEngine.cs
- PerformanceCounterPermissionAttribute.cs
- DeleteCardRequest.cs
- RankException.cs
- ApplicationSecurityInfo.cs
- StyleSelector.cs
- StateDesigner.Layouts.cs
- OperationCanceledException.cs
- Hash.cs
- IndexedSelectQueryOperator.cs
- CalendarButtonAutomationPeer.cs
- SmtpAuthenticationManager.cs
- ErrorInfoXmlDocument.cs
- CodeExporter.cs
- PreservationFileWriter.cs
- NetMsmqBindingCollectionElement.cs
- EDesignUtil.cs
- AssemblyAttributesGoHere.cs
- TranslateTransform.cs
- RefreshResponseInfo.cs
- DataGridColumnHeadersPresenter.cs
- LinkLabel.cs
- CodeAccessPermission.cs
- ConfigXmlComment.cs
- VerticalConnector.xaml.cs
- LinqExpressionNormalizer.cs
- Int16KeyFrameCollection.cs
- TraceProvider.cs
- TaiwanLunisolarCalendar.cs
- SchemaObjectWriter.cs
- SiblingIterators.cs
- PhysicalAddress.cs
- ContractTypeNameCollection.cs
- AdRotator.cs
- OdbcConnectionOpen.cs
- ISSmlParser.cs