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
- SchemaDeclBase.cs
- AllowedAudienceUriElement.cs
- FontStretches.cs
- ValidationPropertyAttribute.cs
- DataSourceBooleanViewSchemaConverter.cs
- DataGridViewAddColumnDialog.cs
- HostingPreferredMapPath.cs
- AutomationPatternInfo.cs
- arabicshape.cs
- TimeSpanValidatorAttribute.cs
- SourceLocation.cs
- CollectionViewSource.cs
- Function.cs
- AnimationException.cs
- ImageSource.cs
- HandlerFactoryCache.cs
- TextHidden.cs
- WebPartDisplayMode.cs
- XPathDocument.cs
- CompiledRegexRunner.cs
- TCPListener.cs
- HtmlInputHidden.cs
- HScrollProperties.cs
- Viewport2DVisual3D.cs
- ListViewUpdateEventArgs.cs
- TextDecorationLocationValidation.cs
- OdbcFactory.cs
- TextBlockAutomationPeer.cs
- Matrix3DValueSerializer.cs
- HtmlElementEventArgs.cs
- ArraySegment.cs
- EpmSyndicationContentSerializer.cs
- ping.cs
- MetabaseServerConfig.cs
- ApplicationFileCodeDomTreeGenerator.cs
- WindowsRebar.cs
- ServerTooBusyException.cs
- SkewTransform.cs
- TypeUnloadedException.cs
- Parser.cs
- BitmapImage.cs
- ValidationError.cs
- IERequestCache.cs
- RegexCompilationInfo.cs
- PropertyChangedEventArgs.cs
- MonthCalendarDesigner.cs
- SrgsRuleRef.cs
- ActionNotSupportedException.cs
- ToolBarButtonClickEvent.cs
- Button.cs
- DesignSurfaceServiceContainer.cs
- ProgressiveCrcCalculatingStream.cs
- HTTP_SERVICE_CONFIG_URLACL_KEY.cs
- QueryOpcode.cs
- TCPClient.cs
- SimpleMailWebEventProvider.cs
- PageEventArgs.cs
- _NativeSSPI.cs
- XmlReaderSettings.cs
- FreeFormPanel.cs
- ScriptingRoleServiceSection.cs
- TdsParserStaticMethods.cs
- ContextMenu.cs
- SimpleRecyclingCache.cs
- XmlHierarchyData.cs
- SqlFactory.cs
- DateRangeEvent.cs
- UInt32.cs
- SqlUtil.cs
- ToolStripDropDown.cs
- OdbcTransaction.cs
- ImageButton.cs
- RenderData.cs
- ToolStripItemClickedEventArgs.cs
- ScrollViewer.cs
- ToolStripContainerDesigner.cs
- CompensatableTransactionScopeActivity.cs
- SizeConverter.cs
- DropDownList.cs
- XmlObjectSerializer.cs
- PkcsUtils.cs
- TimeSpan.cs
- SqlRewriteScalarSubqueries.cs
- cache.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- AppDomainProtocolHandler.cs
- PaperSize.cs
- CodeCompileUnit.cs
- XmlValueConverter.cs
- Listbox.cs
- ToolStripItemImageRenderEventArgs.cs
- printdlgexmarshaler.cs
- TextTreeTextElementNode.cs
- StickyNoteContentControl.cs
- AnnotationResource.cs
- ConvertersCollection.cs
- GlyphElement.cs
- ConfigurationManagerHelper.cs
- SharedDp.cs
- PrintPreviewDialog.cs