Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / ndp / fx / src / DataWeb / Client / System / Data / Services / Client / LinkDescriptor.cs / 4 / 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
- RSAOAEPKeyExchangeFormatter.cs
- QueryAccessibilityHelpEvent.cs
- PermissionListSet.cs
- RequestNavigateEventArgs.cs
- Merger.cs
- SubMenuStyleCollection.cs
- ComponentDesigner.cs
- SocketException.cs
- WebPartConnectVerb.cs
- StatusBarPanelClickEvent.cs
- DispatcherProcessingDisabled.cs
- ButtonBaseDesigner.cs
- DragEvent.cs
- PackageProperties.cs
- SafeReadContext.cs
- DbConnectionHelper.cs
- basecomparevalidator.cs
- MethodBuilderInstantiation.cs
- TextFormatter.cs
- XmlHierarchicalDataSourceView.cs
- SkipQueryOptionExpression.cs
- SchemaType.cs
- FormViewInsertEventArgs.cs
- ContainerParaClient.cs
- InheritanceRules.cs
- RankException.cs
- NodeFunctions.cs
- UTF7Encoding.cs
- SqlClientFactory.cs
- Error.cs
- basecomparevalidator.cs
- TypeUtils.cs
- XPathNodeInfoAtom.cs
- CompositeControl.cs
- ApplicationFileCodeDomTreeGenerator.cs
- PlatformNotSupportedException.cs
- BrowserCapabilitiesFactory35.cs
- InfoCardAsymmetricCrypto.cs
- AsyncPostBackErrorEventArgs.cs
- VirtualizingPanel.cs
- Popup.cs
- SqlBuilder.cs
- FileAuthorizationModule.cs
- SpellerError.cs
- XamlClipboardData.cs
- HttpContextServiceHost.cs
- ThaiBuddhistCalendar.cs
- InfoCardUIAgent.cs
- StandardCommands.cs
- XsltInput.cs
- keycontainerpermission.cs
- CalendarButton.cs
- CollectionConverter.cs
- ServiceBuildProvider.cs
- NumberFormatter.cs
- DependencyPropertyHelper.cs
- XmlSchemaChoice.cs
- WSSecurityTokenSerializer.cs
- ManagedWndProcTracker.cs
- CryptoApi.cs
- ContainerControl.cs
- DPCustomTypeDescriptor.cs
- Util.cs
- StateWorkerRequest.cs
- KeyInstance.cs
- SortAction.cs
- RuntimeResourceSet.cs
- Queue.cs
- dbdatarecord.cs
- HtmlLinkAdapter.cs
- ExternalFile.cs
- IISMapPath.cs
- PackWebResponse.cs
- TransformProviderWrapper.cs
- NameValuePermission.cs
- DependencyPropertyKey.cs
- DataGridViewAutoSizeModeEventArgs.cs
- AliasExpr.cs
- ExplicitDiscriminatorMap.cs
- GeometryModel3D.cs
- SrgsGrammar.cs
- ToolStripArrowRenderEventArgs.cs
- TextDecoration.cs
- TextParagraphProperties.cs
- XmlSchemaException.cs
- BufferModesCollection.cs
- InvalidOperationException.cs
- AutomationEvent.cs
- DocumentViewerHelper.cs
- MetaTableHelper.cs
- ToolStrip.cs
- CounterSample.cs
- MarkedHighlightComponent.cs
- Point3DIndependentAnimationStorage.cs
- InputLanguageManager.cs
- Line.cs
- PrimitiveXmlSerializers.cs
- ComponentResourceManager.cs
- Encoding.cs
- MarkupObject.cs