Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / ndp / fx / src / DataEntity / System / Data / EntityClient / EntityAdapter.cs / 2 / EntityAdapter.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....], [....] //--------------------------------------------------------------------- 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. //---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....], [....] //--------------------------------------------------------------------- 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
- DropTarget.cs
- RoleGroup.cs
- ProfileParameter.cs
- PropertyChangedEventArgs.cs
- FontDialog.cs
- UnsafeNativeMethods.cs
- Converter.cs
- UnsafeNetInfoNativeMethods.cs
- FrameAutomationPeer.cs
- VerticalAlignConverter.cs
- PermissionSetTriple.cs
- LinqDataSourceDeleteEventArgs.cs
- TypedTableGenerator.cs
- _LocalDataStoreMgr.cs
- CaseExpr.cs
- keycontainerpermission.cs
- TableRow.cs
- DataGridViewRowHeightInfoPushedEventArgs.cs
- StyleSelector.cs
- SqlBulkCopy.cs
- Emitter.cs
- DocumentsTrace.cs
- printdlgexmarshaler.cs
- PackageRelationshipSelector.cs
- HijriCalendar.cs
- PackWebRequestFactory.cs
- ObjectDataSourceChooseMethodsPanel.cs
- SqlVersion.cs
- DataTransferEventArgs.cs
- WeakEventManager.cs
- TransactionChannelListener.cs
- ContentHostHelper.cs
- MatrixCamera.cs
- RefreshEventArgs.cs
- EnumBuilder.cs
- SupportsEventValidationAttribute.cs
- DetailsView.cs
- Number.cs
- StyleHelper.cs
- AppDomainShutdownMonitor.cs
- DbProviderConfigurationHandler.cs
- Facet.cs
- DebuggerAttributes.cs
- NamespaceEmitter.cs
- ObjectConverter.cs
- XmlDocumentType.cs
- NativeMethods.cs
- HostSecurityManager.cs
- WebPartHeaderCloseVerb.cs
- StorageInfo.cs
- ScrollChrome.cs
- odbcmetadatafactory.cs
- DataShape.cs
- TextRangeEditTables.cs
- LOSFormatter.cs
- XmlILOptimizerVisitor.cs
- LabelLiteral.cs
- XmlName.cs
- SHA384.cs
- DesignerDataView.cs
- XmlBaseReader.cs
- FileInfo.cs
- Win32PrintDialog.cs
- OrderedHashRepartitionStream.cs
- XmlSchemaGroup.cs
- EntityTypeBase.cs
- StreamGeometry.cs
- WebEvents.cs
- SafeSecurityHelper.cs
- SecurityKeyType.cs
- ImageCodecInfo.cs
- OverflowException.cs
- RTLAwareMessageBox.cs
- ClientTargetSection.cs
- VScrollProperties.cs
- FieldNameLookup.cs
- CaretElement.cs
- XPathSingletonIterator.cs
- TagPrefixCollection.cs
- AssemblyInfo.cs
- SRDisplayNameAttribute.cs
- BinaryObjectInfo.cs
- View.cs
- CellPartitioner.cs
- DataStorage.cs
- HtmlElementErrorEventArgs.cs
- FormClosedEvent.cs
- SecurityCriticalDataForSet.cs
- XmlSchemaAttributeGroup.cs
- LazyInitializer.cs
- SystemDropShadowChrome.cs
- DataGridBoundColumn.cs
- ButtonBaseAutomationPeer.cs
- RichTextBoxConstants.cs
- TypedTableBase.cs
- StreamInfo.cs
- ConnectionInterfaceCollection.cs
- ReadOnlyPropertyMetadata.cs
- mediaeventargs.cs
- TCEAdapterGenerator.cs