Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / ndp / fx / src / DataEntity / System / Data / Map / Update / Internal / RecordConverter.cs / 1 / RecordConverter.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System.Data.Common; using System.Data.Metadata.Edm; using System.Data.Objects; using System.Collections.Generic; using System.Data.Common.Utils; using System.Collections; using System.Data.Entity; namespace System.Data.Mapping.Update.Internal { ////// Converts records to new instance expressions. Assumes that all inputs come from a single data reader (because /// it caches record layout). If multiple readers are used, multiple converters must be constructed in case /// the different readers return different layouts for types. /// ////// Conventions for modifiedProperties enumeration: null means all properties are modified, empty means none, /// non-empty means some. /// internal class RecordConverter { #region Constructors ////// Initializes a new converter given a command tree context. Initializes a new record layout cache. /// /// Setsinternal RecordConverter(UpdateTranslator updateTranslator) { m_updateTranslator = updateTranslator; } #endregion #region Fields /// /// Context used to produce expressions. /// private UpdateTranslator m_updateTranslator; #endregion #region Methods ////// Converts original values in a state entry to a DbNewInstanceExpression. The record must be either an entity or /// a relationship set instance. /// ////// This method is not thread safe. /// /// Gets state entry this record is associated with. /// A list of modified properties. See remarks on this class for details. ///New instance expression. internal PropagatorResult ConvertOriginalValuesToPropagatorResult(IEntityStateEntry stateEntry, IEnumerablemodifiedProperties) { return ConvertStateEntryToPropagatorResult(stateEntry, modifiedProperties, true /*useOriginalValues*/); } /// /// Converts current values in a state entry to a DbNewInstanceExpression. The record must be either an entity or /// a relationship set instance. /// ////// This method is not thread safe. /// /// Gets state entry this record is associated with. /// A list of modified properties. See remarks on this class for details. ///New instance expression. internal PropagatorResult ConvertCurrentValuesToPropagatorResult(IEntityStateEntry stateEntry, IEnumerablemodifiedProperties) { return ConvertStateEntryToPropagatorResult(stateEntry, modifiedProperties, false /*useOriginalValues*/); } private PropagatorResult ConvertStateEntryToPropagatorResult(IEntityStateEntry stateEntry, IEnumerable modifiedProperties, bool useOriginalValues) { try { EntityUtil.CheckArgumentNull(stateEntry, "stateEntry"); IExtendedDataRecord record = useOriginalValues ? EntityUtil.CheckArgumentNull(stateEntry.OriginalValues as IExtendedDataRecord, "stateEntry.OriginalValues") : EntityUtil.CheckArgumentNull(stateEntry.CurrentValues as IExtendedDataRecord, "stateEntry.CurrentValues"); bool isModified = false; // the root of the state entry is unchanged because the type is static return ExtractorMetadata.ExtractResultFromRecord(stateEntry, isModified, record, modifiedProperties, m_updateTranslator); } catch (Exception e) { if (UpdateTranslator.RequiresContext(e)) { throw EntityUtil.Update(Strings.Update_ErrorLoadingRecord, e, stateEntry); } throw; } } #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------------- // // Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System.Data.Common; using System.Data.Metadata.Edm; using System.Data.Objects; using System.Collections.Generic; using System.Data.Common.Utils; using System.Collections; using System.Data.Entity; namespace System.Data.Mapping.Update.Internal { ////// Converts records to new instance expressions. Assumes that all inputs come from a single data reader (because /// it caches record layout). If multiple readers are used, multiple converters must be constructed in case /// the different readers return different layouts for types. /// ////// Conventions for modifiedProperties enumeration: null means all properties are modified, empty means none, /// non-empty means some. /// internal class RecordConverter { #region Constructors ////// Initializes a new converter given a command tree context. Initializes a new record layout cache. /// /// Setsinternal RecordConverter(UpdateTranslator updateTranslator) { m_updateTranslator = updateTranslator; } #endregion #region Fields /// /// Context used to produce expressions. /// private UpdateTranslator m_updateTranslator; #endregion #region Methods ////// Converts original values in a state entry to a DbNewInstanceExpression. The record must be either an entity or /// a relationship set instance. /// ////// This method is not thread safe. /// /// Gets state entry this record is associated with. /// A list of modified properties. See remarks on this class for details. ///New instance expression. internal PropagatorResult ConvertOriginalValuesToPropagatorResult(IEntityStateEntry stateEntry, IEnumerablemodifiedProperties) { return ConvertStateEntryToPropagatorResult(stateEntry, modifiedProperties, true /*useOriginalValues*/); } /// /// Converts current values in a state entry to a DbNewInstanceExpression. The record must be either an entity or /// a relationship set instance. /// ////// This method is not thread safe. /// /// Gets state entry this record is associated with. /// A list of modified properties. See remarks on this class for details. ///New instance expression. internal PropagatorResult ConvertCurrentValuesToPropagatorResult(IEntityStateEntry stateEntry, IEnumerablemodifiedProperties) { return ConvertStateEntryToPropagatorResult(stateEntry, modifiedProperties, false /*useOriginalValues*/); } private PropagatorResult ConvertStateEntryToPropagatorResult(IEntityStateEntry stateEntry, IEnumerable modifiedProperties, bool useOriginalValues) { try { EntityUtil.CheckArgumentNull(stateEntry, "stateEntry"); IExtendedDataRecord record = useOriginalValues ? EntityUtil.CheckArgumentNull(stateEntry.OriginalValues as IExtendedDataRecord, "stateEntry.OriginalValues") : EntityUtil.CheckArgumentNull(stateEntry.CurrentValues as IExtendedDataRecord, "stateEntry.CurrentValues"); bool isModified = false; // the root of the state entry is unchanged because the type is static return ExtractorMetadata.ExtractResultFromRecord(stateEntry, isModified, record, modifiedProperties, m_updateTranslator); } catch (Exception e) { if (UpdateTranslator.RequiresContext(e)) { throw EntityUtil.Update(Strings.Update_ErrorLoadingRecord, e, stateEntry); } throw; } } #endregion } } // 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
- ExpandCollapseProviderWrapper.cs
- LocalizationCodeDomSerializer.cs
- LinkLabel.cs
- TextRangeAdaptor.cs
- StateManagedCollection.cs
- TextMetrics.cs
- ConfigurationStrings.cs
- ExceptionUtil.cs
- XMLUtil.cs
- Model3DGroup.cs
- MatrixStack.cs
- EtwTrace.cs
- DocumentReference.cs
- SafeNativeMethods.cs
- InputLanguageProfileNotifySink.cs
- LocatorPartList.cs
- BrushValueSerializer.cs
- ProjectionPathBuilder.cs
- _ProxyChain.cs
- ArrangedElementCollection.cs
- XamlTypeMapper.cs
- EventMappingSettingsCollection.cs
- DetailsViewDeletedEventArgs.cs
- FormViewUpdatedEventArgs.cs
- GraphicsState.cs
- DefaultExpression.cs
- KnownBoxes.cs
- AvTraceFormat.cs
- AuthenticationConfig.cs
- AdornerPresentationContext.cs
- TransactionProxy.cs
- shaperfactoryquerycachekey.cs
- WebPartsSection.cs
- PageCodeDomTreeGenerator.cs
- PathFigure.cs
- TypeSource.cs
- ToolBarButtonDesigner.cs
- XmlTextEncoder.cs
- KeyValuePairs.cs
- SelfIssuedAuthRSAPKCS1SignatureFormatter.cs
- ToolboxItemCollection.cs
- CodeCompileUnit.cs
- EntryWrittenEventArgs.cs
- TransformGroup.cs
- CodeMethodInvokeExpression.cs
- DeploymentExceptionMapper.cs
- LogEntryDeserializer.cs
- DialogBaseForm.cs
- TransactionOptions.cs
- RenameRuleObjectDialog.Designer.cs
- AspCompat.cs
- NativeMethods.cs
- SmtpReplyReaderFactory.cs
- dataprotectionpermission.cs
- SafeWaitHandle.cs
- DoubleCollection.cs
- NamespaceCollection.cs
- XmlWrappingReader.cs
- XmlReaderSettings.cs
- SafeNativeMethodsMilCoreApi.cs
- ShellProvider.cs
- BasePattern.cs
- ObjectAnimationUsingKeyFrames.cs
- SecurityState.cs
- SecureEnvironment.cs
- DrawingContextDrawingContextWalker.cs
- Vector3DValueSerializer.cs
- BamlTreeNode.cs
- InvalidComObjectException.cs
- HttpChannelHelpers.cs
- WaitHandle.cs
- CompressEmulationStream.cs
- DataGridTableCollection.cs
- WmlSelectionListAdapter.cs
- HtmlInputImage.cs
- ProgressBar.cs
- ScriptManagerProxy.cs
- hresults.cs
- InputDevice.cs
- ProxyDataContractResolver.cs
- UniqueID.cs
- Geometry3D.cs
- PersonalizationState.cs
- ExpressionTable.cs
- XhtmlBasicControlAdapter.cs
- WorkerRequest.cs
- ObjectDataSourceSelectingEventArgs.cs
- Rijndael.cs
- IResourceProvider.cs
- AuthenticationService.cs
- CodeTypeReferenceExpression.cs
- RedirectionProxy.cs
- OdbcEnvironmentHandle.cs
- DeploymentSection.cs
- altserialization.cs
- StreamSecurityUpgradeAcceptorAsyncResult.cs
- CancelEventArgs.cs
- OrderedDictionary.cs
- CommandBinding.cs
- _NetRes.cs