Code:
/ 4.0 / 4.0 / 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. //---------------------------------------------------------------------- //// 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
- SystemColors.cs
- SqlConnectionStringBuilder.cs
- StorageAssociationSetMapping.cs
- Color.cs
- XmlILAnnotation.cs
- SafeCoTaskMem.cs
- Schedule.cs
- Odbc32.cs
- BStrWrapper.cs
- ObjectStateManager.cs
- State.cs
- SchemaDeclBase.cs
- VisualStateGroup.cs
- ComplexTypeEmitter.cs
- RepeaterItemEventArgs.cs
- Command.cs
- GenericTransactionFlowAttribute.cs
- EditCommandColumn.cs
- LinearGradientBrush.cs
- KeyConverter.cs
- SqlRowUpdatedEvent.cs
- DefaultObjectMappingItemCollection.cs
- ColumnResizeAdorner.cs
- InvalidTimeZoneException.cs
- OneOfConst.cs
- SqlDataSourceStatusEventArgs.cs
- ComboBox.cs
- DbResourceAllocator.cs
- CircleEase.cs
- XPathEmptyIterator.cs
- TrustManager.cs
- ComponentSerializationService.cs
- DependencyPropertyConverter.cs
- PanningMessageFilter.cs
- OdbcConnectionFactory.cs
- AssemblyCache.cs
- MailMessage.cs
- PageCodeDomTreeGenerator.cs
- DesignerAutoFormatCollection.cs
- ViewSimplifier.cs
- DefaultWorkflowTransactionService.cs
- EdmSchemaError.cs
- DesignTableCollection.cs
- CodeBlockBuilder.cs
- FontFamilyConverter.cs
- EntityDataSourceContextDisposingEventArgs.cs
- XsltOutput.cs
- WarningException.cs
- RbTree.cs
- translator.cs
- RequiredAttributeAttribute.cs
- BaseProcessor.cs
- Button.cs
- QilReplaceVisitor.cs
- X509InitiatorCertificateServiceElement.cs
- FixedTextBuilder.cs
- ActivityTypeDesigner.xaml.cs
- Hash.cs
- InheritanceContextChangedEventManager.cs
- RenderCapability.cs
- RequestCachingSection.cs
- MediaPlayer.cs
- SqlDataSourceQueryEditorForm.cs
- DataGridViewButtonColumn.cs
- SpellerStatusTable.cs
- Literal.cs
- ColorConvertedBitmap.cs
- AppDomainProtocolHandler.cs
- ToolStripGrip.cs
- LicenseManager.cs
- EmptyQuery.cs
- MediaPlayer.cs
- ReadOnlyHierarchicalDataSourceView.cs
- SplitterEvent.cs
- ExpressionTable.cs
- Compilation.cs
- LZCodec.cs
- XmlDocumentFragment.cs
- SafeNativeMethods.cs
- LookupNode.cs
- ContainerActivationHelper.cs
- DataDesignUtil.cs
- StorageEntityContainerMapping.cs
- CollectionViewProxy.cs
- ItemMap.cs
- DataGridViewCellMouseEventArgs.cs
- Sql8ExpressionRewriter.cs
- CodeCompileUnit.cs
- ServiceChannelManager.cs
- LookupTables.cs
- PackageStore.cs
- AsymmetricKeyExchangeFormatter.cs
- ModelItemKeyValuePair.cs
- DelegatedStream.cs
- hwndwrapper.cs
- DbInsertCommandTree.cs
- ToolStripOverflow.cs
- ProcessProtocolHandler.cs
- FixedTextPointer.cs
- HelpKeywordAttribute.cs