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
- TreeBuilder.cs
- WebScriptServiceHost.cs
- XmlCountingReader.cs
- WebHttpEndpoint.cs
- DeferredTextReference.cs
- InkCollectionBehavior.cs
- Hex.cs
- RefreshInfo.cs
- GridPattern.cs
- Normalization.cs
- ConfigurationPropertyCollection.cs
- LocalizationComments.cs
- XPathNavigator.cs
- MessageQueueEnumerator.cs
- Animatable.cs
- ImageBrush.cs
- milrender.cs
- EnumerableRowCollection.cs
- PixelShader.cs
- ListViewUpdatedEventArgs.cs
- WebPartEditorOkVerb.cs
- MasterPage.cs
- StreamMarshaler.cs
- FieldDescriptor.cs
- QuaternionAnimation.cs
- StyleBamlRecordReader.cs
- MultipleViewPattern.cs
- ComboBox.cs
- ValuePattern.cs
- FileLoadException.cs
- ClientBuildManagerTypeDescriptionProviderBridge.cs
- EntityPropertyMappingAttribute.cs
- BrowserCapabilitiesFactory.cs
- ErrorFormatterPage.cs
- xml.cs
- IsolatedStoragePermission.cs
- ButtonRenderer.cs
- NameSpaceExtractor.cs
- XmlWellformedWriter.cs
- X509SubjectKeyIdentifierClause.cs
- GestureRecognitionResult.cs
- XmlElement.cs
- ListControlConvertEventArgs.cs
- Menu.cs
- HttpHandlerActionCollection.cs
- AddInStore.cs
- NavigationFailedEventArgs.cs
- ObjectDataSourceDisposingEventArgs.cs
- SingleResultAttribute.cs
- SqlReorderer.cs
- DecimalAnimationBase.cs
- BitmapData.cs
- QueryableDataSourceView.cs
- HttpWebResponse.cs
- LinqMaximalSubtreeNominator.cs
- InstanceLockLostException.cs
- LicenseException.cs
- ConfigurationValues.cs
- XmlSchemaElement.cs
- GatewayDefinition.cs
- Variable.cs
- TriState.cs
- MetadataArtifactLoaderXmlReaderWrapper.cs
- ComponentEditorForm.cs
- TextTreeTextElementNode.cs
- IntranetCredentialPolicy.cs
- TreeChangeInfo.cs
- ConsumerConnectionPointCollection.cs
- IPHostEntry.cs
- DetailsViewUpdatedEventArgs.cs
- TableAdapterManagerMethodGenerator.cs
- RectValueSerializer.cs
- Cell.cs
- TouchFrameEventArgs.cs
- SupportsEventValidationAttribute.cs
- LayoutManager.cs
- LocationFactory.cs
- IncrementalHitTester.cs
- GridItemProviderWrapper.cs
- TraceListeners.cs
- TickBar.cs
- Exceptions.cs
- HttpWrapper.cs
- DefaultCommandConverter.cs
- EntityClassGenerator.cs
- Rect.cs
- OleDbSchemaGuid.cs
- StreamReader.cs
- CultureSpecificStringDictionary.cs
- SchemaCollectionCompiler.cs
- DataSourceCache.cs
- initElementDictionary.cs
- NoPersistProperty.cs
- Stackframe.cs
- _IPv6Address.cs
- Misc.cs
- StreamWithDictionary.cs
- WebReferencesBuildProvider.cs
- ToolStripContainerDesigner.cs
- Math.cs