Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataEntity / System / Data / Map / Update / Internal / ChangeNode.cs / 1305376 / ChangeNode.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System.Data.Metadata.Edm; using System.Collections.Generic; using System.Text; using System.Globalization; namespace System.Data.Mapping.Update.Internal { ////// This class encapsulates changes propagated to a node in an update mapping view. /// It contains lists of deleted and inserted rows. Key intersections betweens rows /// in the two sets are treated as updates in the store. /// ////// internal class ChangeNode { #region Constructors ////// Additional tags indicating the roles of particular values (e.g., concurrency, undefined, /// etc.) are stored within each row: where appropriate, constants appearing /// within a row are associated with a ///through the . /// /// The 'leaves' of an update mapping view (UMV) are extent expressions. A change node /// associated with an extent expression is simply the list of changes to the C-Space /// requested by a caller. As changes propagate 'up' the UMV expression tree, we recursively /// apply transformations such that the change node associated with the root of the UMV /// represents changes to apply in the S-Space. /// ////// Constructs a change node containing changes belonging to the specified collection /// schema definition. /// /// Setsproperty. internal ChangeNode(TypeUsage elementType) { m_elementType = elementType; } #endregion #region Fields private TypeUsage m_elementType; private List m_inserted = new List (); private List m_deleted = new List (); private PropagatorResult m_placeholder; #endregion #region Properties /// /// Gets the type of the rows contained in this node. This type corresponds (not coincidentally) /// to the type of an expression in an update mapping view. /// internal TypeUsage ElementType { get { return m_elementType; } } ////// Gets a list of rows to be inserted. /// internal ListInserted { get { return m_inserted; } } /// /// Gets a list of rows to be deleted. /// internal ListDeleted { get { return m_deleted; } } /// /// Gets or sets a version of a record at this node with default record. The record has the type /// of the node we are visiting. /// internal PropagatorResult Placeholder { get { return m_placeholder; } set { m_placeholder = value; } } #endregion #if DEBUG public override string ToString() { StringBuilder builder = new StringBuilder(); builder.AppendLine("{"); builder.AppendFormat(CultureInfo.InvariantCulture, " ElementType = {0}", ElementType).AppendLine(); builder.AppendLine(" Inserted = {"); foreach (PropagatorResult insert in Inserted) { builder.Append(" ").AppendLine(insert.ToString()); } builder.AppendLine(" }"); builder.AppendLine(" Deleted = {"); foreach (PropagatorResult delete in Deleted) { builder.Append(" ").AppendLine(delete.ToString()); } builder.AppendLine(" }"); builder.AppendFormat(CultureInfo.InvariantCulture, " PlaceHolder = {0}", Placeholder).AppendLine(); builder.Append("}"); return builder.ToString(); } #endif } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System.Data.Metadata.Edm; using System.Collections.Generic; using System.Text; using System.Globalization; namespace System.Data.Mapping.Update.Internal { ////// This class encapsulates changes propagated to a node in an update mapping view. /// It contains lists of deleted and inserted rows. Key intersections betweens rows /// in the two sets are treated as updates in the store. /// ////// internal class ChangeNode { #region Constructors ////// Additional tags indicating the roles of particular values (e.g., concurrency, undefined, /// etc.) are stored within each row: where appropriate, constants appearing /// within a row are associated with a ///through the . /// /// The 'leaves' of an update mapping view (UMV) are extent expressions. A change node /// associated with an extent expression is simply the list of changes to the C-Space /// requested by a caller. As changes propagate 'up' the UMV expression tree, we recursively /// apply transformations such that the change node associated with the root of the UMV /// represents changes to apply in the S-Space. /// ////// Constructs a change node containing changes belonging to the specified collection /// schema definition. /// /// Setsproperty. internal ChangeNode(TypeUsage elementType) { m_elementType = elementType; } #endregion #region Fields private TypeUsage m_elementType; private List m_inserted = new List (); private List m_deleted = new List (); private PropagatorResult m_placeholder; #endregion #region Properties /// /// Gets the type of the rows contained in this node. This type corresponds (not coincidentally) /// to the type of an expression in an update mapping view. /// internal TypeUsage ElementType { get { return m_elementType; } } ////// Gets a list of rows to be inserted. /// internal ListInserted { get { return m_inserted; } } /// /// Gets a list of rows to be deleted. /// internal ListDeleted { get { return m_deleted; } } /// /// Gets or sets a version of a record at this node with default record. The record has the type /// of the node we are visiting. /// internal PropagatorResult Placeholder { get { return m_placeholder; } set { m_placeholder = value; } } #endregion #if DEBUG public override string ToString() { StringBuilder builder = new StringBuilder(); builder.AppendLine("{"); builder.AppendFormat(CultureInfo.InvariantCulture, " ElementType = {0}", ElementType).AppendLine(); builder.AppendLine(" Inserted = {"); foreach (PropagatorResult insert in Inserted) { builder.Append(" ").AppendLine(insert.ToString()); } builder.AppendLine(" }"); builder.AppendLine(" Deleted = {"); foreach (PropagatorResult delete in Deleted) { builder.Append(" ").AppendLine(delete.ToString()); } builder.AppendLine(" }"); builder.AppendFormat(CultureInfo.InvariantCulture, " PlaceHolder = {0}", Placeholder).AppendLine(); builder.Append("}"); return builder.ToString(); } #endif } } // 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
- PeerCustomResolverElement.cs
- SqlDataReaderSmi.cs
- UpDownBase.cs
- MediaEntryAttribute.cs
- HttpModuleAction.cs
- SafeArrayTypeMismatchException.cs
- XamlBuildTaskServices.cs
- RenderOptions.cs
- FixedSOMGroup.cs
- DataGridRow.cs
- WebPartEditorApplyVerb.cs
- Screen.cs
- MeshGeometry3D.cs
- EncoderFallback.cs
- RuntimeIdentifierPropertyAttribute.cs
- EntityModelSchemaGenerator.cs
- AudioSignalProblemOccurredEventArgs.cs
- BindingManagerDataErrorEventArgs.cs
- SqlInfoMessageEvent.cs
- XmlSchemas.cs
- __Filters.cs
- TypedElement.cs
- SelectionChangedEventArgs.cs
- xamlnodes.cs
- SoapCommonClasses.cs
- ObjectHelper.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- parserscommon.cs
- RenderDataDrawingContext.cs
- TextEffect.cs
- ServiceOperationHelpers.cs
- DesignerDataTable.cs
- ArrayConverter.cs
- MDIControlStrip.cs
- DateTimeFormat.cs
- AvTraceFormat.cs
- Char.cs
- MimeBasePart.cs
- DataColumnMapping.cs
- CodeTypeReference.cs
- CompositionCommandSet.cs
- WorkflowViewService.cs
- DataGridViewCellCancelEventArgs.cs
- BitmapCache.cs
- ExpressionVisitor.cs
- GuidelineCollection.cs
- StronglyTypedResourceBuilder.cs
- ProcessModelSection.cs
- CodeCastExpression.cs
- SqlProviderServices.cs
- ProfessionalColorTable.cs
- OpenTypeCommon.cs
- MultipartContentParser.cs
- PropertyGeneratedEventArgs.cs
- InfiniteTimeSpanConverter.cs
- SchemaImporterExtensionElement.cs
- MobileControlDesigner.cs
- AppliedDeviceFiltersEditor.cs
- KeyedHashAlgorithm.cs
- HyperLinkField.cs
- DesignParameter.cs
- ToolStripManager.cs
- OneOf.cs
- sortedlist.cs
- ConfigXmlCDataSection.cs
- BitmapScalingModeValidation.cs
- IndependentlyAnimatedPropertyMetadata.cs
- TemplateBindingExpression.cs
- XmlSerializationWriter.cs
- Clause.cs
- TraceInternal.cs
- SqlLiftIndependentRowExpressions.cs
- SemanticAnalyzer.cs
- DodSequenceMerge.cs
- SafeLibraryHandle.cs
- CubicEase.cs
- SetIterators.cs
- XmlSchemaAnyAttribute.cs
- HtmlInputButton.cs
- OracleConnectionStringBuilder.cs
- HttpInputStream.cs
- XmlHierarchicalEnumerable.cs
- CompositeDataBoundControl.cs
- AsymmetricSecurityProtocolFactory.cs
- RawAppCommandInputReport.cs
- TreeBuilderBamlTranslator.cs
- DisableDpiAwarenessAttribute.cs
- MailWebEventProvider.cs
- ReverseInheritProperty.cs
- ListSortDescriptionCollection.cs
- XmlCDATASection.cs
- XsltFunctions.cs
- BooleanAnimationBase.cs
- ObjectDataSourceEventArgs.cs
- _NativeSSPI.cs
- MediaSystem.cs
- TableProviderWrapper.cs
- CanonicalFontFamilyReference.cs
- DbParameterCollection.cs
- SecurityResources.cs