Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / ndp / fx / src / DataEntity / System / Data / EntityClient / EntityAdapter.cs / 3 / 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
- HScrollProperties.cs
- MultilineStringEditor.cs
- SubMenuStyle.cs
- HandlerFactoryWrapper.cs
- MDIWindowDialog.cs
- WebException.cs
- log.cs
- X509Certificate.cs
- DiagnosticTraceSource.cs
- HostedTcpTransportManager.cs
- HttpsChannelFactory.cs
- WebBaseEventKeyComparer.cs
- RequiredFieldValidator.cs
- CompositeKey.cs
- ContextConfiguration.cs
- EncodingNLS.cs
- validationstate.cs
- CompiledQueryCacheEntry.cs
- StyleHelper.cs
- GenerateHelper.cs
- ObjectNotFoundException.cs
- ListViewGroup.cs
- CancellationTokenRegistration.cs
- ResourceAssociationType.cs
- RightsManagementManager.cs
- ContainsSearchOperator.cs
- TextEditorCharacters.cs
- WebPartUtil.cs
- SoapCommonClasses.cs
- TouchFrameEventArgs.cs
- AtomServiceDocumentSerializer.cs
- HtmlControl.cs
- ExpressionNode.cs
- CodeNamespaceCollection.cs
- DataGridRowClipboardEventArgs.cs
- SharedPersonalizationStateInfo.cs
- CachedPathData.cs
- GacUtil.cs
- XPathParser.cs
- DbQueryCommandTree.cs
- SystemIPGlobalProperties.cs
- ContextMenu.cs
- TreeView.cs
- RectangleHotSpot.cs
- HttpContextServiceHost.cs
- CqlGenerator.cs
- SvcMapFile.cs
- DoubleUtil.cs
- SystemGatewayIPAddressInformation.cs
- XamlFrame.cs
- LinearKeyFrames.cs
- CellParaClient.cs
- StringArrayConverter.cs
- WebPartsSection.cs
- LinkLabelLinkClickedEvent.cs
- altserialization.cs
- FontFamilyValueSerializer.cs
- CurrentTimeZone.cs
- LayoutDump.cs
- MetadataSource.cs
- ImageButton.cs
- Int16.cs
- View.cs
- Misc.cs
- SQLDecimal.cs
- Baml2006ReaderFrame.cs
- SiteMapPath.cs
- SerializerProvider.cs
- DataViewSettingCollection.cs
- DocumentOrderQuery.cs
- DBAsyncResult.cs
- ObjectTokenCategory.cs
- LineMetrics.cs
- diagnosticsswitches.cs
- ToolStripItemCollection.cs
- EventLogException.cs
- XPathSelectionIterator.cs
- ReachDocumentSequenceSerializer.cs
- DependencyPropertyChangedEventArgs.cs
- WebPartEditorOkVerb.cs
- TripleDES.cs
- TabItemWrapperAutomationPeer.cs
- EpmCustomContentWriterNodeData.cs
- SymbolType.cs
- BindableTemplateBuilder.cs
- DrawListViewColumnHeaderEventArgs.cs
- PrivateFontCollection.cs
- SrgsElementList.cs
- FontStyle.cs
- Menu.cs
- XmlDocumentFragment.cs
- Delegate.cs
- SqlCacheDependencyDatabaseCollection.cs
- DetailsViewCommandEventArgs.cs
- ClientRequest.cs
- GeneralTransformGroup.cs
- ellipse.cs
- TableCell.cs
- EditorResources.cs
- ErrorRuntimeConfig.cs