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
- Scripts.cs
- AuthenticationModuleElement.cs
- WebPartUserCapability.cs
- ProcessModuleCollection.cs
- IPipelineRuntime.cs
- XMLSyntaxException.cs
- SourceLineInfo.cs
- InstalledFontCollection.cs
- DuplicateWaitObjectException.cs
- SchemaCollectionPreprocessor.cs
- ParameterElementCollection.cs
- PtsContext.cs
- AsyncDataRequest.cs
- WizardForm.cs
- PackWebResponse.cs
- EntryPointNotFoundException.cs
- Switch.cs
- HotSpot.cs
- StackBuilderSink.cs
- Assert.cs
- ProxyAttribute.cs
- MetadataCacheItem.cs
- WpfMemberInvoker.cs
- SignatureHelper.cs
- RecognizedPhrase.cs
- IIS7WorkerRequest.cs
- EntitySetRetriever.cs
- GlyphRunDrawing.cs
- DropShadowBitmapEffect.cs
- DetailsViewInsertedEventArgs.cs
- InstanceDataCollectionCollection.cs
- PropVariant.cs
- MediaTimeline.cs
- RootAction.cs
- PropertyEntry.cs
- EntitySetBaseCollection.cs
- SoapEnumAttribute.cs
- TimeSpanValidatorAttribute.cs
- CommandHelper.cs
- Facet.cs
- ListViewUpdatedEventArgs.cs
- SemanticBasicElement.cs
- OdbcUtils.cs
- WeakReferenceKey.cs
- FormViewInsertEventArgs.cs
- ToolboxComponentsCreatedEventArgs.cs
- EntityDataSourceContextDisposingEventArgs.cs
- MailWriter.cs
- ContainerParaClient.cs
- Mouse.cs
- HttpDictionary.cs
- GenerateScriptTypeAttribute.cs
- ViewSimplifier.cs
- WebEventCodes.cs
- BitmapEffectDrawing.cs
- SHA512.cs
- CertificateManager.cs
- RequestSecurityTokenResponse.cs
- ScrollChangedEventArgs.cs
- PerfService.cs
- RegisteredScript.cs
- CodeTypeReferenceExpression.cs
- BitmapFrameEncode.cs
- ToolStripManager.cs
- EntityDataSourceChangingEventArgs.cs
- MembershipValidatePasswordEventArgs.cs
- TextSegment.cs
- ToolboxComponentsCreatedEventArgs.cs
- InstalledFontCollection.cs
- documentsequencetextview.cs
- URLEditor.cs
- GenericWebPart.cs
- HScrollBar.cs
- WebPartDisplayModeCancelEventArgs.cs
- DataGridItem.cs
- InputScope.cs
- PackagingUtilities.cs
- PeerNearMe.cs
- XmlDictionaryWriter.cs
- Rule.cs
- GroupJoinQueryOperator.cs
- JournalEntryStack.cs
- BitmapPalette.cs
- IfJoinedCondition.cs
- TraceRecord.cs
- CharacterString.cs
- SqlParameterCollection.cs
- BaseUriHelper.cs
- StringValidator.cs
- COM2EnumConverter.cs
- ValidationError.cs
- assertwrapper.cs
- StringDictionary.cs
- SystemIPAddressInformation.cs
- HtmlHead.cs
- EncoderParameters.cs
- SafeViewOfFileHandle.cs
- QilTargetType.cs
- StoreConnection.cs
- SelectionUIHandler.cs