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
- ViewStateException.cs
- TiffBitmapEncoder.cs
- BuiltInPermissionSets.cs
- Span.cs
- SplitterCancelEvent.cs
- DataKey.cs
- ExpressionVisitor.cs
- ManipulationDelta.cs
- TreeNodeBindingCollection.cs
- CreateInstanceBinder.cs
- DecoratedNameAttribute.cs
- MissingSatelliteAssemblyException.cs
- DataGridPagingPage.cs
- CodeDomSerializer.cs
- ClientProxyGenerator.cs
- SkewTransform.cs
- ProcessHost.cs
- MissingMemberException.cs
- ExpressionNormalizer.cs
- Ops.cs
- TypeUsageBuilder.cs
- XmlRootAttribute.cs
- SqlBuffer.cs
- DataGridViewRowCancelEventArgs.cs
- EditCommandColumn.cs
- EnumerableWrapperWeakToStrong.cs
- AsyncPostBackErrorEventArgs.cs
- RecordConverter.cs
- DifferencingCollection.cs
- TiffBitmapDecoder.cs
- METAHEADER.cs
- AssemblyBuilder.cs
- ToolboxItemAttribute.cs
- Substitution.cs
- HashHelpers.cs
- SkewTransform.cs
- FormsAuthentication.cs
- smtppermission.cs
- ConfigurationManagerInternal.cs
- FormsAuthenticationTicket.cs
- InvalidateEvent.cs
- BrowserInteropHelper.cs
- GridViewPageEventArgs.cs
- XmlCharacterData.cs
- SystemTcpStatistics.cs
- TableCellCollection.cs
- __Filters.cs
- SynchronizedKeyedCollection.cs
- TimeStampChecker.cs
- HttpHandlerAction.cs
- Imaging.cs
- StatusBarItem.cs
- SByte.cs
- recordstate.cs
- LongTypeConverter.cs
- ISFTagAndGuidCache.cs
- ByteFacetDescriptionElement.cs
- EasingFunctionBase.cs
- AvTraceDetails.cs
- KnownTypeDataContractResolver.cs
- ToolStripHighContrastRenderer.cs
- MachineKeyConverter.cs
- sqlpipe.cs
- WindowCollection.cs
- Rect3DValueSerializer.cs
- Comparer.cs
- UnionCodeGroup.cs
- LinqDataSourceContextEventArgs.cs
- BitmapEffectState.cs
- SessionSymmetricTransportSecurityProtocolFactory.cs
- EventDescriptor.cs
- SqlNodeAnnotation.cs
- Visual3D.cs
- WorkflowServiceHostFactory.cs
- StackSpiller.Bindings.cs
- WpfWebRequestHelper.cs
- XmlElementAttribute.cs
- PathStreamGeometryContext.cs
- ASCIIEncoding.cs
- externdll.cs
- AsyncPostBackTrigger.cs
- FileDialogPermission.cs
- ProfilePropertyNameValidator.cs
- ColumnCollection.cs
- TaskHelper.cs
- UrlAuthorizationModule.cs
- ManagedWndProcTracker.cs
- OleDbPropertySetGuid.cs
- Bold.cs
- ScriptManagerProxy.cs
- RuntimeCompatibilityAttribute.cs
- __Filters.cs
- ListBindingConverter.cs
- NullExtension.cs
- RegexStringValidator.cs
- ChannelServices.cs
- DataGridRow.cs
- DrawingContextWalker.cs
- Span.cs