Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- SslStreamSecurityElement.cs
- ViewUtilities.cs
- RepeatInfo.cs
- BypassElement.cs
- ClientSponsor.cs
- HttpModulesSection.cs
- ConnectionStringSettingsCollection.cs
- XmlReturnWriter.cs
- CharacterBuffer.cs
- StrokeIntersection.cs
- SqlDataSourceWizardForm.cs
- BinaryFormatter.cs
- SqlFlattener.cs
- RecognizeCompletedEventArgs.cs
- RegularExpressionValidator.cs
- EncryptedKey.cs
- RegistryHandle.cs
- EnumCodeDomSerializer.cs
- RoleManagerModule.cs
- XmlSchemaImporter.cs
- listitem.cs
- ControlTemplate.cs
- BufferedGraphics.cs
- XmlBoundElement.cs
- ActivityExecutionContextCollection.cs
- TableCell.cs
- TemplatePropertyEntry.cs
- XMLSchema.cs
- EventLogWatcher.cs
- HttpFileCollectionBase.cs
- PropertyMetadata.cs
- CompletionCallbackWrapper.cs
- webbrowsersite.cs
- ObjectStateManagerMetadata.cs
- Wildcard.cs
- X509CertificateValidationMode.cs
- ChangeConflicts.cs
- TreeNodeCollection.cs
- NamedPipeAppDomainProtocolHandler.cs
- XamlWriter.cs
- SQLInt16Storage.cs
- CustomAttributeBuilder.cs
- TextBox.cs
- XPathDocumentBuilder.cs
- DeflateStream.cs
- ValidationRule.cs
- MessageQueueCriteria.cs
- DetailsViewPagerRow.cs
- DataFieldConverter.cs
- MediaPlayer.cs
- PropertyEmitter.cs
- ExpressionPrefixAttribute.cs
- DataGridViewImageColumn.cs
- StylusTip.cs
- SiteMapDesignerDataSourceView.cs
- UniqueIdentifierService.cs
- ReferenceSchema.cs
- InternalSafeNativeMethods.cs
- FrameworkTextComposition.cs
- TypeToken.cs
- DBCommand.cs
- RelativeSource.cs
- Rights.cs
- DashStyle.cs
- UriTemplatePathPartiallyEquivalentSet.cs
- ReadOnlyAttribute.cs
- XmlDsigSep2000.cs
- MouseActionValueSerializer.cs
- SrgsGrammar.cs
- Enumerable.cs
- PathTooLongException.cs
- DataGridViewSelectedRowCollection.cs
- XmlIlVisitor.cs
- HttpResponseInternalWrapper.cs
- AlgoModule.cs
- AccessedThroughPropertyAttribute.cs
- SourceFileBuildProvider.cs
- HttpContext.cs
- ToolboxDataAttribute.cs
- ParseElement.cs
- InvokeMemberBinder.cs
- MultiAsyncResult.cs
- EmissiveMaterial.cs
- CacheVirtualItemsEvent.cs
- CompiledXpathExpr.cs
- Light.cs
- DbMetaDataFactory.cs
- DependencySource.cs
- ClassImporter.cs
- InputProcessorProfiles.cs
- BStrWrapper.cs
- UnsafeNativeMethodsMilCoreApi.cs
- ConstrainedGroup.cs
- WebBrowser.cs
- ReadOnlyCollection.cs
- DesignerAttributeInfo.cs
- HyperLink.cs
- StringBlob.cs
- ToolStripDropDownItem.cs
- ChannelCredentials.cs