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
- NetworkInformationPermission.cs
- CompositeCollectionView.cs
- SafeFindHandle.cs
- ExpressionConverter.cs
- FrameworkPropertyMetadata.cs
- ForeignConstraint.cs
- XPathItem.cs
- DictionaryManager.cs
- HeaderCollection.cs
- SecurityHelper.cs
- DataGridViewRowConverter.cs
- MemberInfoSerializationHolder.cs
- RecommendedAsConfigurableAttribute.cs
- SuppressMergeCheckAttribute.cs
- BStrWrapper.cs
- TreeWalkHelper.cs
- ReliableSessionElement.cs
- GenericIdentity.cs
- CheckBoxStandardAdapter.cs
- Delay.cs
- ClientSettingsStore.cs
- HtmlInputReset.cs
- SqlAggregateChecker.cs
- EventPrivateKey.cs
- CodeCompiler.cs
- ChangeBlockUndoRecord.cs
- ChtmlTextWriter.cs
- XmlNavigatorStack.cs
- AccessibilityHelperForVista.cs
- XmlEncodedRawTextWriter.cs
- EventRoute.cs
- ModelPropertyImpl.cs
- PackageDigitalSignatureManager.cs
- ConvertTextFrag.cs
- OdbcEnvironmentHandle.cs
- HitTestResult.cs
- FunctionQuery.cs
- SiteMap.cs
- TTSEngineProxy.cs
- ActiveXHost.cs
- AffineTransform3D.cs
- PointLightBase.cs
- NonBatchDirectoryCompiler.cs
- Semaphore.cs
- ErrorRuntimeConfig.cs
- DefaultTraceListener.cs
- DataGridViewElement.cs
- ListViewSelectEventArgs.cs
- AttributeSetAction.cs
- StateDesigner.cs
- EllipseGeometry.cs
- BadImageFormatException.cs
- BinaryNode.cs
- EntityDataSourceStatementEditor.cs
- CodeConstructor.cs
- WindowsButton.cs
- DesignerActionService.cs
- FrameworkReadOnlyPropertyMetadata.cs
- AlphaSortedEnumConverter.cs
- IDReferencePropertyAttribute.cs
- CultureSpecificStringDictionary.cs
- WebPartMenu.cs
- TypeToTreeConverter.cs
- Base64Stream.cs
- QueryContinueDragEventArgs.cs
- SQLBinary.cs
- BoundPropertyEntry.cs
- PersonalizationEntry.cs
- PointAnimationBase.cs
- EmptyControlCollection.cs
- CodeGroup.cs
- TextBlockAutomationPeer.cs
- ContractComponent.cs
- HyperLinkField.cs
- ActivitiesCollection.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- DrawingContextWalker.cs
- EntityDataReader.cs
- BuildProviderAppliesToAttribute.cs
- ExpressionList.cs
- HoistedLocals.cs
- ObjectStateEntry.cs
- ArglessEventHandlerProxy.cs
- SqlBulkCopyColumnMappingCollection.cs
- SqlStream.cs
- ByeMessageApril2005.cs
- dtdvalidator.cs
- ChooseAction.cs
- MatrixAnimationUsingKeyFrames.cs
- Condition.cs
- ToolStripContentPanel.cs
- CatalogPartCollection.cs
- RelatedView.cs
- AbsoluteQuery.cs
- BehaviorEditorPart.cs
- QuaternionRotation3D.cs
- SmiEventStream.cs
- PlaceHolder.cs
- ExtensionQuery.cs
- CanonicalFontFamilyReference.cs