Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataEntity / System / Data / Map / Update / Internal / RecordConverter.cs / 1305376 / 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. /// Indicates how to determine whether a property is modified. ///New instance expression. internal PropagatorResult ConvertOriginalValuesToPropagatorResult(IEntityStateEntry stateEntry, ModifiedPropertiesBehavior modifiedPropertiesBehavior) { return ConvertStateEntryToPropagatorResult(stateEntry, useCurrentValues: false, modifiedPropertiesBehavior: modifiedPropertiesBehavior); } ////// 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. /// Indicates how to determine whether a property is modified. ///New instance expression. internal PropagatorResult ConvertCurrentValuesToPropagatorResult(IEntityStateEntry stateEntry, ModifiedPropertiesBehavior modifiedPropertiesBehavior) { return ConvertStateEntryToPropagatorResult(stateEntry, useCurrentValues: true, modifiedPropertiesBehavior: modifiedPropertiesBehavior); } private PropagatorResult ConvertStateEntryToPropagatorResult(IEntityStateEntry stateEntry, bool useCurrentValues, ModifiedPropertiesBehavior modifiedPropertiesBehavior) { try { EntityUtil.CheckArgumentNull(stateEntry, "stateEntry"); IExtendedDataRecord record = useCurrentValues ? EntityUtil.CheckArgumentNull(stateEntry.CurrentValues as IExtendedDataRecord, "stateEntry.CurrentValues") : EntityUtil.CheckArgumentNull(stateEntry.OriginalValues as IExtendedDataRecord, "stateEntry.OriginalValues"); bool isModified = false; // the root of the state entry is unchanged because the type is static return ExtractorMetadata.ExtractResultFromRecord(stateEntry, isModified, record, useCurrentValues, m_updateTranslator, modifiedPropertiesBehavior); } 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
- SchemaImporter.cs
- InkSerializer.cs
- XmlSchema.cs
- PeerToPeerException.cs
- BindingContext.cs
- TerminateDesigner.cs
- InfoCardHelper.cs
- WorkflowWebHostingModule.cs
- NativeWindow.cs
- CodeConditionStatement.cs
- FontStyles.cs
- RuleRef.cs
- ThreadInterruptedException.cs
- TextServicesContext.cs
- SHA256.cs
- SqlDuplicator.cs
- Section.cs
- WmlObjectListAdapter.cs
- DbConnectionPoolGroup.cs
- GuidelineSet.cs
- DependencyPropertyKind.cs
- CompoundFileDeflateTransform.cs
- SHA1Managed.cs
- ProcessHostServerConfig.cs
- Lasso.cs
- ConstructorNeedsTagAttribute.cs
- PageStatePersister.cs
- MetadataItem.cs
- EdmEntityTypeAttribute.cs
- DoubleLinkList.cs
- ShaperBuffers.cs
- CodePageUtils.cs
- ImplicitInputBrush.cs
- StreamGeometryContext.cs
- SettingsPropertyIsReadOnlyException.cs
- TextTrailingWordEllipsis.cs
- HtmlEmptyTagControlBuilder.cs
- VectorConverter.cs
- RotateTransform3D.cs
- SqlBulkCopyColumnMapping.cs
- Visual3D.cs
- ResolvedKeyFrameEntry.cs
- DataBindingCollectionConverter.cs
- UrlAuthorizationModule.cs
- ViewStateAttachedPropertyFeature.cs
- DesignTimeVisibleAttribute.cs
- WebHttpDispatchOperationSelectorData.cs
- OperationCanceledException.cs
- RadioButtonStandardAdapter.cs
- CompositeDataBoundControl.cs
- ProgressBar.cs
- BinaryExpressionHelper.cs
- DecoderBestFitFallback.cs
- SecurityRuntime.cs
- Profiler.cs
- LastQueryOperator.cs
- TaskFormBase.cs
- DataControlLinkButton.cs
- ComponentManagerBroker.cs
- ISCIIEncoding.cs
- GlobalDataBindingHandler.cs
- PostBackTrigger.cs
- Constraint.cs
- SmiRequestExecutor.cs
- ScrollBarRenderer.cs
- Debugger.cs
- ErrorTableItemStyle.cs
- JsonSerializer.cs
- FactoryMaker.cs
- DoubleConverter.cs
- webproxy.cs
- PolicyVersion.cs
- XmlSchemaParticle.cs
- FileUtil.cs
- Model3D.cs
- FormView.cs
- TextDecorationLocationValidation.cs
- ArraySubsetEnumerator.cs
- OdbcReferenceCollection.cs
- DetailsViewInsertedEventArgs.cs
- UrlMappingsSection.cs
- Soap.cs
- SqlUserDefinedAggregateAttribute.cs
- SimpleBitVector32.cs
- RepeaterItem.cs
- TagPrefixInfo.cs
- ClientTarget.cs
- XmlAnyAttributeAttribute.cs
- Label.cs
- ToggleProviderWrapper.cs
- TextWriterTraceListener.cs
- EditorPartChrome.cs
- WebServiceHandler.cs
- DetailsViewActionList.cs
- DataGridViewCellLinkedList.cs
- PixelFormats.cs
- PointF.cs
- ChangeTracker.cs
- ConstructorBuilder.cs
- TextElementCollectionHelper.cs