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
- BehaviorEditorPart.cs
- CoreSwitches.cs
- TraceSwitch.cs
- ZipIOFileItemStream.cs
- path.cs
- ExtensionDataReader.cs
- externdll.cs
- ByteStreamGeometryContext.cs
- SchemaTableColumn.cs
- TimeSpanSecondsOrInfiniteConverter.cs
- TextPointerBase.cs
- SqlCommandBuilder.cs
- ErrorTableItemStyle.cs
- HandlerBase.cs
- ObjectDataSourceDisposingEventArgs.cs
- TextEditorCharacters.cs
- HitTestWithGeometryDrawingContextWalker.cs
- GraphicsContext.cs
- PropertiesTab.cs
- RadioButtonList.cs
- CharAnimationBase.cs
- DesignBindingEditor.cs
- HttpCacheVary.cs
- ToolBarDesigner.cs
- StringWriter.cs
- AttachedAnnotationChangedEventArgs.cs
- TextSelectionHighlightLayer.cs
- ImageInfo.cs
- OdbcRowUpdatingEvent.cs
- SerializerDescriptor.cs
- CacheForPrimitiveTypes.cs
- ExceptionUtil.cs
- SizeLimitedCache.cs
- webclient.cs
- RandomNumberGenerator.cs
- Missing.cs
- OptimizedTemplateContent.cs
- Comparer.cs
- CategoryNameCollection.cs
- SizeFConverter.cs
- MouseEventArgs.cs
- ScrollBar.cs
- DataGridCellInfo.cs
- ZoomingMessageFilter.cs
- SqlConnectionString.cs
- ListViewVirtualItemsSelectionRangeChangedEvent.cs
- NameValueFileSectionHandler.cs
- HtmlTableRow.cs
- Listbox.cs
- DetailsViewRow.cs
- formatter.cs
- sqlstateclientmanager.cs
- ThemeConfigurationDialog.cs
- AppSettingsSection.cs
- COSERVERINFO.cs
- FormatControl.cs
- InfiniteIntConverter.cs
- NavigatorOutput.cs
- DispatcherEventArgs.cs
- QilInvokeEarlyBound.cs
- ValueCollectionParameterReader.cs
- ResourceAttributes.cs
- ColorMatrix.cs
- CodeArgumentReferenceExpression.cs
- IResourceProvider.cs
- DynamicResourceExtensionConverter.cs
- Overlapped.cs
- JsonXmlDataContract.cs
- JavaScriptObjectDeserializer.cs
- XslCompiledTransform.cs
- CodeDefaultValueExpression.cs
- ToolStripItemRenderEventArgs.cs
- Brush.cs
- DrawListViewItemEventArgs.cs
- smtppermission.cs
- TreeViewItemAutomationPeer.cs
- DragSelectionMessageFilter.cs
- SymbolUsageManager.cs
- OdbcTransaction.cs
- ValuePattern.cs
- SHA256.cs
- GroupBox.cs
- ProcessModelSection.cs
- TdsParserStaticMethods.cs
- Range.cs
- XmlUtf8RawTextWriter.cs
- CodeArrayIndexerExpression.cs
- PictureBox.cs
- FileDialogCustomPlaces.cs
- ZipIOCentralDirectoryFileHeader.cs
- GlobalProxySelection.cs
- ObjectQueryExecutionPlan.cs
- SamlSubject.cs
- WebResourceAttribute.cs
- DocumentXmlWriter.cs
- ImageAnimator.cs
- SmiConnection.cs
- formatstringdialog.cs
- LogRecordSequence.cs
- Enlistment.cs