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
- SQLCharsStorage.cs
- MetaData.cs
- HttpConfigurationContext.cs
- DataGridParentRows.cs
- ObjectReferenceStack.cs
- FieldNameLookup.cs
- ProcessInputEventArgs.cs
- Label.cs
- RegionInfo.cs
- ReverseComparer.cs
- MapPathBasedVirtualPathProvider.cs
- StylusShape.cs
- ActiveXHelper.cs
- Query.cs
- ReferenceAssemblyAttribute.cs
- CTreeGenerator.cs
- UInt32Storage.cs
- complextypematerializer.cs
- BaseTemplateParser.cs
- NamespaceInfo.cs
- ComplexTypeEmitter.cs
- XmlSchemaProviderAttribute.cs
- DataBindingExpressionBuilder.cs
- TaiwanCalendar.cs
- DrawListViewSubItemEventArgs.cs
- ZipIOExtraFieldZip64Element.cs
- TreeSet.cs
- DrawingCollection.cs
- SQLUtility.cs
- XAMLParseException.cs
- Condition.cs
- QuaternionRotation3D.cs
- DoubleStorage.cs
- XPathDocumentBuilder.cs
- HandledEventArgs.cs
- DeadCharTextComposition.cs
- GridViewRowCollection.cs
- BoundField.cs
- NativeMethods.cs
- SuppressedPackageProperties.cs
- XmlEntityReference.cs
- FtpRequestCacheValidator.cs
- PreservationFileReader.cs
- TextEditorCharacters.cs
- XmlDesigner.cs
- XPathParser.cs
- StackSpiller.cs
- StreamMarshaler.cs
- AdapterDictionary.cs
- SchemaImporter.cs
- ServiceDescriptions.cs
- linebase.cs
- SafeProcessHandle.cs
- ProtectedConfigurationSection.cs
- GeneratedCodeAttribute.cs
- Base64Encoder.cs
- PersonalizationStateQuery.cs
- TextEvent.cs
- WebPartAuthorizationEventArgs.cs
- BamlStream.cs
- Pair.cs
- ServiceDescription.cs
- DesignerDataTableBase.cs
- BamlRecords.cs
- BindingContext.cs
- DragAssistanceManager.cs
- GridPattern.cs
- ProviderException.cs
- MSHTMLHost.cs
- PageCatalogPart.cs
- Control.cs
- Padding.cs
- PageClientProxyGenerator.cs
- AnnotationObservableCollection.cs
- ListViewItemMouseHoverEvent.cs
- ActivitySurrogateSelector.cs
- ClientUtils.cs
- DiagnosticsConfiguration.cs
- CounterNameConverter.cs
- TextComposition.cs
- TaskExtensions.cs
- MultiView.cs
- DatePickerTextBox.cs
- XamlBrushSerializer.cs
- ContractUtils.cs
- TransportManager.cs
- TableLayoutSettingsTypeConverter.cs
- HtmlTextArea.cs
- KeyGestureConverter.cs
- SystemInformation.cs
- StoreItemCollection.Loader.cs
- GestureRecognizer.cs
- HiddenField.cs
- PieceNameHelper.cs
- ColumnHeaderConverter.cs
- DataGridViewMethods.cs
- FormatConvertedBitmap.cs
- LoadedOrUnloadedOperation.cs
- CacheEntry.cs
- ReturnValue.cs