Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Bidi.cs
- XamlPointCollectionSerializer.cs
- WindowsImpersonationContext.cs
- elementinformation.cs
- WhitespaceRule.cs
- NonVisualControlAttribute.cs
- BufferedStream.cs
- ActivityValidator.cs
- NameTable.cs
- StylusLogic.cs
- SurrogateEncoder.cs
- RSAOAEPKeyExchangeFormatter.cs
- TemplateBuilder.cs
- OptimizedTemplateContent.cs
- PngBitmapDecoder.cs
- PasswordDeriveBytes.cs
- GetPageNumberCompletedEventArgs.cs
- DbFunctionCommandTree.cs
- ConfigurationLocationCollection.cs
- TableStyle.cs
- RelativeSource.cs
- ImageAutomationPeer.cs
- Int16Converter.cs
- EntityEntry.cs
- FigureParaClient.cs
- TimerElapsedEvenArgs.cs
- PageEventArgs.cs
- Selection.cs
- TemplateBindingExpressionConverter.cs
- TraceLog.cs
- TimerExtension.cs
- AggregateNode.cs
- IsolatedStorage.cs
- NameValuePair.cs
- TextElement.cs
- TaskFormBase.cs
- ServiceBusyException.cs
- QueryBranchOp.cs
- CoTaskMemUnicodeSafeHandle.cs
- DataGridViewColumnCollection.cs
- DataBoundControlAdapter.cs
- SQLSingleStorage.cs
- odbcmetadatacolumnnames.cs
- SessionEndedEventArgs.cs
- ConditionalDesigner.cs
- SecurityNegotiationException.cs
- NavigationFailedEventArgs.cs
- Profiler.cs
- PageStatePersister.cs
- XmlNodeChangedEventManager.cs
- ApplicationFileParser.cs
- ConnectionsZone.cs
- MenuScrollingVisibilityConverter.cs
- TranslateTransform3D.cs
- AutomationElement.cs
- DataGridViewBand.cs
- XmlIncludeAttribute.cs
- ListViewItem.cs
- ToolStripCollectionEditor.cs
- TypeReference.cs
- SizeAnimation.cs
- InputReport.cs
- BindingCompleteEventArgs.cs
- FileDetails.cs
- MetaForeignKeyColumn.cs
- TdsRecordBufferSetter.cs
- DecryptRequest.cs
- URLBuilder.cs
- PointHitTestParameters.cs
- SecurityDescriptor.cs
- MulticastDelegate.cs
- translator.cs
- FrameworkElementAutomationPeer.cs
- LinqDataSourceUpdateEventArgs.cs
- EntitySqlQueryCacheEntry.cs
- PaginationProgressEventArgs.cs
- RoleServiceManager.cs
- DataGridViewRowsRemovedEventArgs.cs
- ErrorTableItemStyle.cs
- CloudCollection.cs
- GC.cs
- SHA256Managed.cs
- RegexMatchCollection.cs
- LambdaCompiler.Logical.cs
- WebPart.cs
- ScrollPatternIdentifiers.cs
- ToolboxItemImageConverter.cs
- SafeFileMappingHandle.cs
- TextProperties.cs
- GPPOINT.cs
- DescendantBaseQuery.cs
- NameValuePermission.cs
- OAVariantLib.cs
- TextTreeTextElementNode.cs
- SqlBulkCopyColumnMapping.cs
- TextAction.cs
- EventPrivateKey.cs
- ServiceProviders.cs
- CookielessHelper.cs
- RowsCopiedEventArgs.cs