Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataEntity / System / Data / EntityClient / EntityAdapter.cs / 1305376 / EntityAdapter.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System.Collections.Generic; using System.Text; using System.Data; using System.Data.Common; using System.Data.Mapping.Update.Internal; using System.Data.Objects; using System.Diagnostics; using System.Data.Mapping; namespace System.Data.EntityClient { ////// Class representing a data adapter for the conceptual layer /// internal sealed class EntityAdapter : IEntityAdapter { private bool _acceptChangesDuringUpdate = true; private EntityConnection _connection; private Int32? _commandTimeout; ////// Constructs the EntityAdapter object without a connection object /// public EntityAdapter() { } ////// Gets or sets the map connection used by this adapter. /// DbConnection IEntityAdapter.Connection { get { return this.Connection; } set { this.Connection = (EntityConnection)value; } } ////// Gets or sets the map connection used by this adapter. /// public EntityConnection Connection { get { return _connection; } set { _connection = value; } } ////// Gets or sets whether the IEntityCache.AcceptChanges should be called during a call to IEntityAdapter.Update. /// public bool AcceptChangesDuringUpdate { get { return this._acceptChangesDuringUpdate; } set { this._acceptChangesDuringUpdate = value; } } ////// Gets of sets the command timeout for update operations. If null, indicates that the default timeout /// for the provider should be used. /// Int32? IEntityAdapter.CommandTimeout { get { return this._commandTimeout; } set { this._commandTimeout = value; } } ////// Persist modifications described in the given cache. /// /// Entity cache containing changes to persist to the store. ///Number of cache entries affected by the udpate. public Int32 Update(IEntityStateManager entityCache) { EntityUtil.CheckArgumentNull(entityCache, "entityCache"); if (!IsStateManagerDirty(entityCache)) { return 0; } // Check that we have a connection before we proceed if (_connection == null) { throw EntityUtil.InvalidOperation(System.Data.Entity.Strings.EntityClient_NoConnectionForAdapter); } // Check that the store connection is available if (_connection.StoreProviderFactory == null || this._connection.StoreConnection == null) { throw EntityUtil.InvalidOperation(System.Data.Entity.Strings.EntityClient_NoStoreConnectionForUpdate); } // Check that the connection is open before we proceed if (ConnectionState.Open != _connection.State) { throw EntityUtil.InvalidOperation(System.Data.Entity.Strings.EntityClient_ClosedConnectionForUpdate); } return UpdateTranslator.Update(entityCache, this); } ////// Determine whether the cache has changes to apply. /// /// ObjectStateManager to check. Must not be null. ///true if cache contains changes entries; false otherwise private static bool IsStateManagerDirty(IEntityStateManager entityCache) { Debug.Assert(null != entityCache); bool hasChanges = false; // this call to GetCacheEntries is constant time (the ObjectStateManager implementation // maintains an explicit list of entries in each state) foreach (ObjectStateEntry entry in entityCache.GetEntityStateEntries( EntityState.Added | EntityState.Deleted | EntityState.Modified)) { hasChanges = true; break; } return hasChanges; } } } // 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
- VariantWrapper.cs
- HatchBrush.cs
- OleAutBinder.cs
- FontDriver.cs
- xdrvalidator.cs
- DataSet.cs
- PassportAuthenticationEventArgs.cs
- ToolStripDropDownClosedEventArgs.cs
- AuthorizationContext.cs
- DataKeyArray.cs
- Currency.cs
- TemplateBindingExpression.cs
- RemoteWebConfigurationHost.cs
- BinaryMethodMessage.cs
- WindowsFormsSynchronizationContext.cs
- Literal.cs
- ToolboxComponentsCreatedEventArgs.cs
- ListViewTableCell.cs
- GeneralTransform3DTo2DTo3D.cs
- OdbcRowUpdatingEvent.cs
- LinearKeyFrames.cs
- SmtpFailedRecipientsException.cs
- ImageAttributes.cs
- PackageRelationshipSelector.cs
- WindowsScrollBarBits.cs
- PauseStoryboard.cs
- XmlSchemaSimpleContent.cs
- DrawItemEvent.cs
- XmlSchemaExporter.cs
- XmlSchemaAttributeGroup.cs
- RsaSecurityTokenAuthenticator.cs
- ListControl.cs
- ColumnPropertiesGroup.cs
- ListBox.cs
- PhoneCall.cs
- CodeSnippetTypeMember.cs
- SqlParameterizer.cs
- XmlNavigatorFilter.cs
- TableColumnCollectionInternal.cs
- DataTableMapping.cs
- DecimalMinMaxAggregationOperator.cs
- DataGridViewSelectedRowCollection.cs
- TabControl.cs
- ViewSimplifier.cs
- WindowsFormsDesignerOptionService.cs
- MetadataArtifactLoaderCompositeFile.cs
- URIFormatException.cs
- SqlUserDefinedTypeAttribute.cs
- AppSettingsSection.cs
- WebPartEventArgs.cs
- TextDpi.cs
- HandledEventArgs.cs
- NavigationPropertyEmitter.cs
- TraceProvider.cs
- Context.cs
- CodeTypeReference.cs
- CacheModeValueSerializer.cs
- ThemeDictionaryExtension.cs
- Drawing.cs
- ToolStripHighContrastRenderer.cs
- CompiledQuery.cs
- ListBox.cs
- GridViewDeleteEventArgs.cs
- SQLDecimal.cs
- PagesSection.cs
- XmlWriterSettings.cs
- InputProviderSite.cs
- EntityDataSource.cs
- OpenTypeLayoutCache.cs
- StaticExtension.cs
- TagPrefixInfo.cs
- _SingleItemRequestCache.cs
- bidPrivateBase.cs
- ExcCanonicalXml.cs
- GridViewAutomationPeer.cs
- OdbcConnectionFactory.cs
- RelativeSource.cs
- MatrixConverter.cs
- RepeatBehavior.cs
- IPAddress.cs
- DeploymentSection.cs
- dsa.cs
- NetMsmqBindingCollectionElement.cs
- Rijndael.cs
- FormatVersion.cs
- LayoutTableCell.cs
- InheritanceContextChangedEventManager.cs
- TransformerInfoCollection.cs
- TrustManagerMoreInformation.cs
- ZipIOCentralDirectoryFileHeader.cs
- LambdaCompiler.Generated.cs
- ExpressionBuilder.cs
- BooleanSwitch.cs
- DefaultBinder.cs
- TextTreeExtractElementUndoUnit.cs
- ArcSegment.cs
- UpDownBase.cs
- BasicExpandProvider.cs
- CompilerHelpers.cs
- LiteralText.cs