Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / ndp / fx / src / DataEntity / System / Data / EntityClient / EntityAdapter.cs / 1 / 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
- ComponentSerializationService.cs
- ModuleConfigurationInfo.cs
- securitycriticaldataClass.cs
- FormattedTextSymbols.cs
- ResourceKey.cs
- ProgressBar.cs
- EntityDataSourceWrapperCollection.cs
- EncoderExceptionFallback.cs
- DefaultObjectMappingItemCollection.cs
- AutomationProperties.cs
- StrongNameMembershipCondition.cs
- DiscoveryClientProtocol.cs
- SettingsProviderCollection.cs
- DiffuseMaterial.cs
- URLIdentityPermission.cs
- XmlArrayItemAttribute.cs
- ProxyWebPartConnectionCollection.cs
- Environment.cs
- ServiceInstanceProvider.cs
- SapiGrammar.cs
- WebPartConnectionsCancelVerb.cs
- EventlogProvider.cs
- EventProvider.cs
- CollectionViewSource.cs
- TagPrefixCollection.cs
- NamespaceEmitter.cs
- ISFTagAndGuidCache.cs
- QuaternionRotation3D.cs
- ResXResourceSet.cs
- ListViewItem.cs
- CacheModeConverter.cs
- GridErrorDlg.cs
- ContravarianceAdapter.cs
- SQLInt16.cs
- SharedConnectionInfo.cs
- XmlSchemaImporter.cs
- XPathItem.cs
- ServiceKnownTypeAttribute.cs
- WebPartConnectionsEventArgs.cs
- Action.cs
- Button.cs
- UntrustedRecipientException.cs
- LinkedResourceCollection.cs
- CompModSwitches.cs
- ColorMatrix.cs
- HttpCacheVary.cs
- DataGridTablesFactory.cs
- PropertyPathWorker.cs
- PropertyMap.cs
- OracleParameterCollection.cs
- Evidence.cs
- CatalogPartChrome.cs
- SQLBoolean.cs
- Pair.cs
- XmlSerializationWriter.cs
- QueryTask.cs
- TypedReference.cs
- SQLRoleProvider.cs
- ObjectDataSourceSelectingEventArgs.cs
- SchemaInfo.cs
- TraceHandlerErrorFormatter.cs
- NativeMethods.cs
- ToolTip.cs
- DataGridLinkButton.cs
- StreamGeometryContext.cs
- SqlConnectionFactory.cs
- WindowManager.cs
- SystemGatewayIPAddressInformation.cs
- cache.cs
- EventSchemaTraceListener.cs
- compensatingcollection.cs
- RegexGroup.cs
- ValidationRuleCollection.cs
- SignatureConfirmationElement.cs
- SchemaNames.cs
- DataControlFieldHeaderCell.cs
- ProfessionalColorTable.cs
- XmlLanguageConverter.cs
- validationstate.cs
- WebPartZone.cs
- ZeroOpNode.cs
- SparseMemoryStream.cs
- StringHelper.cs
- SaveCardRequest.cs
- WSFederationHttpBinding.cs
- XamlRtfConverter.cs
- ContentElementAutomationPeer.cs
- XmlWellformedWriter.cs
- recordstatescratchpad.cs
- DataGridViewRowPrePaintEventArgs.cs
- ParameterBuilder.cs
- wmiprovider.cs
- SerializationFieldInfo.cs
- ElementHostPropertyMap.cs
- ButtonColumn.cs
- QuadraticBezierSegment.cs
- X509CertificateValidationMode.cs
- log.cs
- IncrementalReadDecoders.cs
- Italic.cs