Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / ndp / fx / src / DataEntity / System / Data / Map / Update / Internal / RecordConverter.cs / 2 / 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
- initElementDictionary.cs
- MenuTracker.cs
- DecimalStorage.cs
- RepeaterItemCollection.cs
- HtmlTableRowCollection.cs
- RotationValidation.cs
- TabPage.cs
- RIPEMD160Managed.cs
- SqlColumnizer.cs
- MetadataItemSerializer.cs
- PrePostDescendentsWalker.cs
- WindowsIPAddress.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- VerticalAlignConverter.cs
- ListCardsInFileRequest.cs
- XmlSchemaCollection.cs
- XmlSchemaSimpleTypeList.cs
- WhitespaceReader.cs
- Internal.cs
- XmlUtil.cs
- RawStylusInputReport.cs
- ConfigurationManagerInternalFactory.cs
- XmlEntity.cs
- WebServiceEndpoint.cs
- CorrelationKey.cs
- BulletChrome.cs
- AssertHelper.cs
- DesignerContextDescriptor.cs
- RadioButtonRenderer.cs
- EnumerableRowCollectionExtensions.cs
- DocumentViewer.cs
- ClientBuildManager.cs
- HttpHandlerActionCollection.cs
- AdapterSwitches.cs
- WorkflowRuntimeSection.cs
- serverconfig.cs
- UnmanagedMemoryStream.cs
- XmlWriter.cs
- _AutoWebProxyScriptHelper.cs
- PageContentCollection.cs
- AdobeCFFWrapper.cs
- Pool.cs
- SafeCertificateContext.cs
- MemberRelationshipService.cs
- NotImplementedException.cs
- AvTrace.cs
- Int32.cs
- CommandHelpers.cs
- DesignerAutoFormat.cs
- Vector3DKeyFrameCollection.cs
- XamlFilter.cs
- GeneratedContractType.cs
- Debugger.cs
- DataGridViewCellStyleContentChangedEventArgs.cs
- securitycriticaldata.cs
- WebPartConnectionsCancelEventArgs.cs
- HMACMD5.cs
- SoapObjectReader.cs
- Screen.cs
- ConfigurationSectionCollection.cs
- ScriptHandlerFactory.cs
- GridViewHeaderRowPresenterAutomationPeer.cs
- fixedPageContentExtractor.cs
- BCLDebug.cs
- TextModifier.cs
- ExpressionList.cs
- Inline.cs
- XamlToRtfWriter.cs
- SecurityTokenTypes.cs
- UnaryNode.cs
- ClientFactory.cs
- WebScriptServiceHost.cs
- DataControlFieldCell.cs
- CodeStatementCollection.cs
- _SafeNetHandles.cs
- EventMappingSettings.cs
- ProviderConnectionPointCollection.cs
- WinEventHandler.cs
- CustomWebEventKey.cs
- BStrWrapper.cs
- HostingEnvironmentException.cs
- PageScaling.cs
- FixedSOMTextRun.cs
- InstalledFontCollection.cs
- AutoCompleteStringCollection.cs
- Timer.cs
- ListBindableAttribute.cs
- PropertyTabChangedEvent.cs
- Form.cs
- AxisAngleRotation3D.cs
- UncommonField.cs
- ObjectTag.cs
- PathFigureCollection.cs
- TimeEnumHelper.cs
- FixedHighlight.cs
- objectresult_tresulttype.cs
- HitTestFilterBehavior.cs
- BaseTemplateBuildProvider.cs
- DeferredReference.cs
- Button.cs