Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataEntity / System / Data / Objects / Internal / EntityWithChangeTrackerStrategy.cs / 1305376 / EntityWithChangeTrackerStrategy.cs
using System;
using System.Collections.Generic;
using System.Text;
using System.Data.Objects.DataClasses;
using System.Diagnostics;
namespace System.Data.Objects.Internal
{
///
/// Implementation of the change tracking strategy for entities that support change trackers.
/// These are typically entities that implement IEntityWithChangeTracker.
///
internal sealed class EntityWithChangeTrackerStrategy : IChangeTrackingStrategy
{
private IEntityWithChangeTracker _entity;
///
/// Constructs a strategy object that will cause the change tracker to be set onto the
/// given object.
///
/// The object onto which a change tracker will be set
public EntityWithChangeTrackerStrategy(IEntityWithChangeTracker entity)
{
_entity = entity;
}
// See IChangeTrackingStrategy documentation
public void SetChangeTracker(IEntityChangeTracker changeTracker)
{
_entity.SetChangeTracker(changeTracker);
}
// See IChangeTrackingStrategy documentation
public void TakeSnapshot(EntityEntry entry)
{
if (entry != null && entry.WrappedEntity.RequiresComplexChangeTracking)
{
entry.TakeSnapshot(true);
}
}
// See IChangeTrackingStrategy documentation
public void SetCurrentValue(EntityEntry entry, StateManagerMemberMetadata member, int ordinal, object target, object value)
{
member.SetValue(target, value);
}
// See IChangeTrackingStrategy documentation
public void UpdateCurrentValueRecord(object value, EntityEntry entry)
{
// Has change tracker, but may or may not be a proxy
bool isProxy = entry.WrappedEntity.IdentityType != _entity.GetType();
entry.UpdateRecordWithoutSetModified(value, entry.CurrentValues);
if (isProxy)
{
entry.DetectChangesInProperties(true); // detect only complex property changes
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
using System;
using System.Collections.Generic;
using System.Text;
using System.Data.Objects.DataClasses;
using System.Diagnostics;
namespace System.Data.Objects.Internal
{
///
/// Implementation of the change tracking strategy for entities that support change trackers.
/// These are typically entities that implement IEntityWithChangeTracker.
///
internal sealed class EntityWithChangeTrackerStrategy : IChangeTrackingStrategy
{
private IEntityWithChangeTracker _entity;
///
/// Constructs a strategy object that will cause the change tracker to be set onto the
/// given object.
///
/// The object onto which a change tracker will be set
public EntityWithChangeTrackerStrategy(IEntityWithChangeTracker entity)
{
_entity = entity;
}
// See IChangeTrackingStrategy documentation
public void SetChangeTracker(IEntityChangeTracker changeTracker)
{
_entity.SetChangeTracker(changeTracker);
}
// See IChangeTrackingStrategy documentation
public void TakeSnapshot(EntityEntry entry)
{
if (entry != null && entry.WrappedEntity.RequiresComplexChangeTracking)
{
entry.TakeSnapshot(true);
}
}
// See IChangeTrackingStrategy documentation
public void SetCurrentValue(EntityEntry entry, StateManagerMemberMetadata member, int ordinal, object target, object value)
{
member.SetValue(target, value);
}
// See IChangeTrackingStrategy documentation
public void UpdateCurrentValueRecord(object value, EntityEntry entry)
{
// Has change tracker, but may or may not be a proxy
bool isProxy = entry.WrappedEntity.IdentityType != _entity.GetType();
entry.UpdateRecordWithoutSetModified(value, entry.CurrentValues);
if (isProxy)
{
entry.DetectChangesInProperties(true); // detect only complex property changes
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ReliableMessagingVersion.cs
- ToolStripDropDownMenu.cs
- DesignerRegionCollection.cs
- sqlstateclientmanager.cs
- XPathAncestorQuery.cs
- StreamGeometry.cs
- ExceptionUtil.cs
- ViewEventArgs.cs
- safesecurityhelperavalon.cs
- MessageQueuePermissionEntry.cs
- CatalogZoneBase.cs
- UdpAnnouncementEndpoint.cs
- SmiEventSink_Default.cs
- ProcessHostConfigUtils.cs
- RegionData.cs
- Visual3DCollection.cs
- UserThread.cs
- HatchBrush.cs
- XmlCharCheckingReader.cs
- FullTextState.cs
- ContentDisposition.cs
- JsonStringDataContract.cs
- BindValidationContext.cs
- WCFModelStrings.Designer.cs
- BlurEffect.cs
- X509InitiatorCertificateClientElement.cs
- TableRow.cs
- FloaterParaClient.cs
- CqlQuery.cs
- KnownTypesProvider.cs
- SequenceFullException.cs
- Win32Exception.cs
- CodeTypeDeclaration.cs
- PEFileEvidenceFactory.cs
- _LocalDataStoreMgr.cs
- Mutex.cs
- newinstructionaction.cs
- DynamicMethod.cs
- TextDpi.cs
- EditingMode.cs
- ControlBindingsCollection.cs
- DataGridViewSelectedCellCollection.cs
- AsymmetricKeyExchangeDeformatter.cs
- XAMLParseException.cs
- InputLanguage.cs
- fixedPageContentExtractor.cs
- AssemblyLoader.cs
- PriorityChain.cs
- UnsafeNativeMethods.cs
- SID.cs
- SuspendDesigner.cs
- IntegerValidator.cs
- ProcessModuleCollection.cs
- PagesSection.cs
- EntityWithKeyStrategy.cs
- RegisterInfo.cs
- CSharpCodeProvider.cs
- TypeElement.cs
- SqlTransaction.cs
- CompModSwitches.cs
- GridLengthConverter.cs
- WebHeaderCollection.cs
- EDesignUtil.cs
- PathStreamGeometryContext.cs
- DesignerAdapterUtil.cs
- StackOverflowException.cs
- HttpConfigurationContext.cs
- SafeRightsManagementQueryHandle.cs
- ScrollPattern.cs
- Preprocessor.cs
- MruCache.cs
- MarkedHighlightComponent.cs
- Metafile.cs
- Command.cs
- NotSupportedException.cs
- SoapHeaders.cs
- Filter.cs
- Type.cs
- WebPartDescription.cs
- MimeObjectFactory.cs
- RequestCachePolicy.cs
- OletxTransactionHeader.cs
- ProcessingInstructionAction.cs
- OutputCacheSettingsSection.cs
- XmlKeywords.cs
- ElementHostPropertyMap.cs
- DrawingVisualDrawingContext.cs
- OletxTransactionHeader.cs
- WebPartsSection.cs
- tooltip.cs
- FixedPage.cs
- EventHandlersDesigner.cs
- BitSet.cs
- OdbcHandle.cs
- ProxyWebPartConnectionCollection.cs
- TextCompositionEventArgs.cs
- UnionExpr.cs
- ViewManager.cs
- DefaultExpressionVisitor.cs
- ToolboxItemWrapper.cs