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
- WindowsFormsHostAutomationPeer.cs
- Animatable.cs
- EventLogQuery.cs
- SQLDecimal.cs
- XmlNodeList.cs
- ObjectStateManagerMetadata.cs
- IxmlLineInfo.cs
- SafeThemeHandle.cs
- ScriptResourceMapping.cs
- ResourceWriter.cs
- SourceItem.cs
- XPathNodeIterator.cs
- mactripleDES.cs
- AssertValidation.cs
- ArgumentOutOfRangeException.cs
- DynamicMethod.cs
- Win32Native.cs
- relpropertyhelper.cs
- DrawingCollection.cs
- EventItfInfo.cs
- UdpChannelFactory.cs
- BordersPage.cs
- DiscoveryService.cs
- ControlOperationInvoker.cs
- XmlJsonWriter.cs
- RuleEngine.cs
- EventWaitHandle.cs
- CompilationUnit.cs
- RijndaelManagedTransform.cs
- ContractInferenceHelper.cs
- ChainOfResponsibility.cs
- KeyValueInternalCollection.cs
- ScalarConstant.cs
- ConnectionOrientedTransportChannelListener.cs
- LocalIdKeyIdentifierClause.cs
- CrossSiteScriptingValidation.cs
- QueryRewriter.cs
- SymbolTable.cs
- EditingCoordinator.cs
- CallInfo.cs
- XmlEncodedRawTextWriter.cs
- BindingOperations.cs
- _KerberosClient.cs
- MessageSmuggler.cs
- ChannelSinkStacks.cs
- Vector3dCollection.cs
- AxHost.cs
- CalendarDay.cs
- StreamWithDictionary.cs
- ConnectionProviderAttribute.cs
- ContentValidator.cs
- SchemaMapping.cs
- OracleBFile.cs
- AsyncOperation.cs
- DeleteWorkflowOwnerCommand.cs
- NumericPagerField.cs
- ILGenerator.cs
- FreeFormDesigner.cs
- XpsFilter.cs
- MethodExecutor.cs
- TableParagraph.cs
- DbProviderFactories.cs
- Page.cs
- Main.cs
- ProxyGenerationError.cs
- UserCancellationException.cs
- followingquery.cs
- DesignerHelpers.cs
- ManipulationInertiaStartingEventArgs.cs
- XmlDataSource.cs
- _SpnDictionary.cs
- ConsumerConnectionPointCollection.cs
- ImageConverter.cs
- BaseCollection.cs
- ProcessModelInfo.cs
- ComponentEditorForm.cs
- WebPartMovingEventArgs.cs
- KeyPressEvent.cs
- SqlDataSourceCache.cs
- NotImplementedException.cs
- HtmlDocument.cs
- RSAPKCS1KeyExchangeFormatter.cs
- dataprotectionpermissionattribute.cs
- validation.cs
- GeneralTransform.cs
- UserControl.cs
- HwndHostAutomationPeer.cs
- Nullable.cs
- XmlElement.cs
- CachedTypeface.cs
- QuarticEase.cs
- SQLDoubleStorage.cs
- HelloOperationCD1AsyncResult.cs
- ToolStripOverflowButton.cs
- CounterSampleCalculator.cs
- ContentPropertyAttribute.cs
- TreeNodeBinding.cs
- ImageDrawing.cs
- Win32MouseDevice.cs
- MouseWheelEventArgs.cs