Code:
/ 4.0 / 4.0 / untmp / 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.
///
///
///
/// 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.
///
///
internal class ChangeNode
{
#region Constructors
///
/// Constructs a change node containing changes belonging to the specified collection
/// schema definition.
///
/// Sets property.
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 List Inserted { get { return m_inserted; } }
///
/// Gets a list of rows to be deleted.
///
internal List Deleted { 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
- ObjectDataSourceStatusEventArgs.cs
- Label.cs
- ResourcesChangeInfo.cs
- TextComposition.cs
- XmlSchemaObjectTable.cs
- Helpers.cs
- Style.cs
- RegexInterpreter.cs
- RelativeSource.cs
- TreeViewCancelEvent.cs
- AlignmentYValidation.cs
- DataGridViewCellEventArgs.cs
- InputLangChangeRequestEvent.cs
- TcpHostedTransportConfiguration.cs
- InvokeGenerator.cs
- ConfigurationStrings.cs
- ProcessInfo.cs
- View.cs
- SqlFileStream.cs
- PersonalizationProviderCollection.cs
- CompModHelpers.cs
- CanExecuteRoutedEventArgs.cs
- TextSelectionProcessor.cs
- ConnectionPoint.cs
- InterleavedZipPartStream.cs
- AnimationException.cs
- ItemsPresenter.cs
- XPathAncestorIterator.cs
- DashStyle.cs
- ObfuscationAttribute.cs
- OdbcCommand.cs
- DataGridViewLinkCell.cs
- TableItemProviderWrapper.cs
- ApplicationManager.cs
- InternalBufferManager.cs
- PcmConverter.cs
- ProcessModule.cs
- TextTreeExtractElementUndoUnit.cs
- RadioButtonAutomationPeer.cs
- DivideByZeroException.cs
- DataGridViewAutoSizeColumnsModeEventArgs.cs
- InteropBitmapSource.cs
- SslStream.cs
- XmlBinaryReader.cs
- ArraySubsetEnumerator.cs
- Cursor.cs
- TextEndOfLine.cs
- HttpVersion.cs
- ListBindableAttribute.cs
- PopOutPanel.cs
- BindingManagerDataErrorEventArgs.cs
- TemplateKeyConverter.cs
- VoiceObjectToken.cs
- XmlArrayItemAttributes.cs
- XmlSchemaComplexType.cs
- ToolStripArrowRenderEventArgs.cs
- RelativeSource.cs
- ObjectDataSourceStatusEventArgs.cs
- TextTreeObjectNode.cs
- XmlWriterSettings.cs
- XmlNullResolver.cs
- XsltLoader.cs
- MetafileHeader.cs
- FixedSOMSemanticBox.cs
- MonitoringDescriptionAttribute.cs
- unitconverter.cs
- StyleHelper.cs
- CopyCodeAction.cs
- WebPartVerbsEventArgs.cs
- QilInvokeLateBound.cs
- CrossSiteScriptingValidation.cs
- SizeIndependentAnimationStorage.cs
- EntitySqlQueryBuilder.cs
- SiteMapProvider.cs
- VisualStyleElement.cs
- TaiwanCalendar.cs
- MethodImplAttribute.cs
- SrgsRulesCollection.cs
- ResourceSet.cs
- ListDictionaryInternal.cs
- AdCreatedEventArgs.cs
- BitmapData.cs
- TextParagraph.cs
- Point3DValueSerializer.cs
- CfgParser.cs
- UInt16Storage.cs
- BamlWriter.cs
- SQLGuidStorage.cs
- Figure.cs
- AffineTransform3D.cs
- InfiniteTimeSpanConverter.cs
- OracleParameterCollection.cs
- TypeElementCollection.cs
- Encoder.cs
- DesignerVerbCollection.cs
- BufferedReadStream.cs
- _Win32.cs
- TimeIntervalCollection.cs
- XmlSerializationGeneratedCode.cs
- RegionIterator.cs