Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / ndp / fx / src / DataWeb / Client / System / Data / Services / Client / LinkDescriptor.cs / 1 / 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 /// public sealed class LinkDescriptor : Descriptor { ///equivalence comparer internal static readonly System.Collections.Generic.IEqualityComparerEquivalentComparer = new Equivalent(); /// source entity private readonly object source; ///name of property on source entity that references the target entity private readonly string sourceProperty; ///target entity private readonly object target; ////// constructor /// /// source entity /// name of property on source entity that references the target entity /// target entity /// link state internal LinkDescriptor(object source, string sourceProperty, object target, EntityStates state) : base(state) { this.source = source; this.sourceProperty = sourceProperty; this.target = target; Debug.Assert(null != source, "null != source"); Debug.Assert(!string.IsNullOrEmpty(sourceProperty), "null != sourceProperty"); Debug.Assert(null != target || (EntityStates.Unchanged == state) || (EntityStates.Modified == state) || (EntityStates.Detached == state), "null != target"); Debug.Assert( EntityStates.Added == state || EntityStates.Modified == state || EntityStates.Deleted == state || EntityStates.Unchanged == state || EntityStates.Detached == state, "state"); } ///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; } } ///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 (x.Source == y.Source) && (x.Target == y.Target) && (x.SourceProperty == y.SourceProperty); } ///compute hashcode for LinkDescriptor /// link descriptor ///hashcode public int GetHashCode(LinkDescriptor obj) { return obj.Source.GetHashCode() ^ ((null != obj.Target) ? obj.Target.GetHashCode() : 0) ^ obj.SourceProperty.GetHashCode(); } } } } // 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 /// public sealed class LinkDescriptor : Descriptor { ///equivalence comparer internal static readonly System.Collections.Generic.IEqualityComparerEquivalentComparer = new Equivalent(); /// source entity private readonly object source; ///name of property on source entity that references the target entity private readonly string sourceProperty; ///target entity private readonly object target; ////// constructor /// /// source entity /// name of property on source entity that references the target entity /// target entity /// link state internal LinkDescriptor(object source, string sourceProperty, object target, EntityStates state) : base(state) { this.source = source; this.sourceProperty = sourceProperty; this.target = target; Debug.Assert(null != source, "null != source"); Debug.Assert(!string.IsNullOrEmpty(sourceProperty), "null != sourceProperty"); Debug.Assert(null != target || (EntityStates.Unchanged == state) || (EntityStates.Modified == state) || (EntityStates.Detached == state), "null != target"); Debug.Assert( EntityStates.Added == state || EntityStates.Modified == state || EntityStates.Deleted == state || EntityStates.Unchanged == state || EntityStates.Detached == state, "state"); } ///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; } } ///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 (x.Source == y.Source) && (x.Target == y.Target) && (x.SourceProperty == y.SourceProperty); } ///compute hashcode for LinkDescriptor /// link descriptor ///hashcode public int GetHashCode(LinkDescriptor obj) { return obj.Source.GetHashCode() ^ ((null != obj.Target) ? obj.Target.GetHashCode() : 0) ^ obj.SourceProperty.GetHashCode(); } } } } // 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
- XmlSchemaAttributeGroupRef.cs
- StreamResourceInfo.cs
- Attribute.cs
- MatrixKeyFrameCollection.cs
- ToolStripLabel.cs
- DelegateSerializationHolder.cs
- CompiledWorkflowDefinitionContext.cs
- GPRECTF.cs
- NonceToken.cs
- CodeNamespaceImport.cs
- StateRuntime.cs
- FormViewDeleteEventArgs.cs
- StructuralObject.cs
- CodeObject.cs
- AccessorTable.cs
- GatewayDefinition.cs
- HttpApplicationStateWrapper.cs
- StateChangeEvent.cs
- Match.cs
- KeyManager.cs
- PathSegment.cs
- IteratorFilter.cs
- SoapObjectInfo.cs
- SamlSecurityToken.cs
- RecognizerInfo.cs
- BrowserDefinitionCollection.cs
- Shape.cs
- BindingObserver.cs
- CollectionBuilder.cs
- DataGridViewComboBoxColumn.cs
- EventLogEntryCollection.cs
- Vertex.cs
- SafeUserTokenHandle.cs
- InputMethodStateChangeEventArgs.cs
- ChangeProcessor.cs
- UIElement.cs
- DesignerToolStripControlHost.cs
- GradientBrush.cs
- KnownBoxes.cs
- SecurityTokenValidationException.cs
- XmlUTF8TextWriter.cs
- ProvidersHelper.cs
- HitTestParameters.cs
- InstalledFontCollection.cs
- HttpException.cs
- BooleanExpr.cs
- SqlDependencyUtils.cs
- Compilation.cs
- Choices.cs
- KeyGestureConverter.cs
- ReferentialConstraintRoleElement.cs
- AsymmetricKeyExchangeDeformatter.cs
- BooleanStorage.cs
- DbParameterCollectionHelper.cs
- Panel.cs
- WebBrowsableAttribute.cs
- XPathQilFactory.cs
- Typography.cs
- DrawListViewItemEventArgs.cs
- TableLayoutPanelDesigner.cs
- ActiveXSite.cs
- SqlProvider.cs
- ByteBufferPool.cs
- KeyFrames.cs
- RangeValueProviderWrapper.cs
- PerformanceCounter.cs
- ConfigViewGenerator.cs
- SqlDataSource.cs
- FastEncoderWindow.cs
- CategoriesDocument.cs
- CachingHintValidation.cs
- ByteStream.cs
- ClientOptions.cs
- EntryWrittenEventArgs.cs
- EntityStoreSchemaGenerator.cs
- IgnoreFlushAndCloseStream.cs
- LicenseException.cs
- RepeatBehaviorConverter.cs
- BreakSafeBase.cs
- PtsPage.cs
- ItemChangedEventArgs.cs
- DBCSCodePageEncoding.cs
- ArrayElementGridEntry.cs
- DockingAttribute.cs
- ThrowHelper.cs
- XmlSchemaSimpleTypeList.cs
- ExternalException.cs
- MultiBinding.cs
- RelativeSource.cs
- DataSourceComponent.cs
- UiaCoreApi.cs
- NameValueSectionHandler.cs
- EntitySqlQueryCacheEntry.cs
- SqlServer2KCompatibilityCheck.cs
- WizardForm.cs
- SystemNetHelpers.cs
- safex509handles.cs
- InfoCardRSAPKCS1SignatureFormatter.cs
- ParameterCollection.cs
- ZoneMembershipCondition.cs