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
- DataSourceHelper.cs
- InkCanvasSelectionAdorner.cs
- TextBoxDesigner.cs
- IconBitmapDecoder.cs
- ToolTip.cs
- XmlILAnnotation.cs
- OleDbEnumerator.cs
- ComboBoxDesigner.cs
- MailAddress.cs
- ExceptionNotification.cs
- HttpGetProtocolReflector.cs
- RelationshipEnd.cs
- DataGrid.cs
- LinqDataSourceSelectEventArgs.cs
- DataGridCommandEventArgs.cs
- PerformanceCounterPermissionAttribute.cs
- DataGridPageChangedEventArgs.cs
- HyperlinkAutomationPeer.cs
- CodeSnippetCompileUnit.cs
- ScriptMethodAttribute.cs
- MultiAsyncResult.cs
- CompiledXpathExpr.cs
- XmlUtf8RawTextWriter.cs
- TrustLevel.cs
- Int32Rect.cs
- IntermediatePolicyValidator.cs
- ReadOnlyDataSourceView.cs
- SchemaImporterExtensionsSection.cs
- ZipIOLocalFileBlock.cs
- PersonalizableAttribute.cs
- Validator.cs
- SoapObjectWriter.cs
- InvalidOleVariantTypeException.cs
- DataGridViewEditingControlShowingEventArgs.cs
- FunctionNode.cs
- EdmItemCollection.OcAssemblyCache.cs
- ItemsPresenter.cs
- ParallelDesigner.xaml.cs
- EpmCustomContentWriterNodeData.cs
- ResourcesChangeInfo.cs
- WCFServiceClientProxyGenerator.cs
- XmlSchemaAttributeGroupRef.cs
- DocumentXmlWriter.cs
- Emitter.cs
- SynchronousChannel.cs
- RMEnrollmentPage3.cs
- CodeObjectCreateExpression.cs
- NotifyInputEventArgs.cs
- UserControlBuildProvider.cs
- IntegerFacetDescriptionElement.cs
- ShapingWorkspace.cs
- ChangeBlockUndoRecord.cs
- InheritanceContextHelper.cs
- XmlnsCache.cs
- RawStylusInputCustomDataList.cs
- OLEDB_Enum.cs
- ElementNotAvailableException.cs
- PropertyValidationContext.cs
- DBPropSet.cs
- DataGridCaption.cs
- WebPartTransformerAttribute.cs
- XmlCodeExporter.cs
- OleDbDataReader.cs
- Delegate.cs
- HttpModuleAction.cs
- ToolStripItemRenderEventArgs.cs
- ParseNumbers.cs
- FileEnumerator.cs
- CacheEntry.cs
- Positioning.cs
- MissingMemberException.cs
- SQLGuid.cs
- isolationinterop.cs
- ProxyWebPartConnectionCollection.cs
- XamlTreeBuilderBamlRecordWriter.cs
- DoubleKeyFrameCollection.cs
- SqlCharStream.cs
- ServicePoint.cs
- ImageBrush.cs
- FolderLevelBuildProvider.cs
- SemanticResultValue.cs
- smtppermission.cs
- Form.cs
- wmiprovider.cs
- PropertyGridCommands.cs
- TimeSpanOrInfiniteConverter.cs
- WorkflowRuntimeSection.cs
- FormatException.cs
- UserControl.cs
- ThreadStateException.cs
- TextRunProperties.cs
- RoleService.cs
- RecordConverter.cs
- XmlSchemaException.cs
- EventLogger.cs
- Stacktrace.cs
- EnumUnknown.cs
- BatchWriter.cs
- DockPattern.cs
- Point3DCollection.cs