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
- XmlWellformedWriterHelpers.cs
- XmlElement.cs
- TextLine.cs
- EventPrivateKey.cs
- securitycriticaldata.cs
- OperationCanceledException.cs
- AuthorizationRuleCollection.cs
- ComponentRenameEvent.cs
- DBBindings.cs
- XmlSchemaExporter.cs
- Image.cs
- Root.cs
- GeneratedCodeAttribute.cs
- DocumentReference.cs
- shaper.cs
- SqlUnionizer.cs
- QuerySafeNavigator.cs
- ObjectSpanRewriter.cs
- PeerName.cs
- NCryptNative.cs
- SoapConverter.cs
- SiteMapPath.cs
- InlineObject.cs
- GridViewUpdateEventArgs.cs
- PagePropertiesChangingEventArgs.cs
- ComplexObject.cs
- AssociativeAggregationOperator.cs
- AdRotator.cs
- DataGridViewBand.cs
- Dump.cs
- ListViewInsertEventArgs.cs
- GridProviderWrapper.cs
- NativeObjectSecurity.cs
- DefaultTextStore.cs
- PermissionRequestEvidence.cs
- ComponentDesigner.cs
- NativeRightsManagementAPIsStructures.cs
- SecurityTokenProvider.cs
- SHA512.cs
- ConnectionStringEditor.cs
- Model3DCollection.cs
- NegationPusher.cs
- MembershipPasswordException.cs
- DynamicUpdateCommand.cs
- ControlCollection.cs
- ResXResourceReader.cs
- Blend.cs
- TraceSection.cs
- DatasetMethodGenerator.cs
- DataGridItemEventArgs.cs
- TypeConverterHelper.cs
- DecryptedHeader.cs
- PrivilegeNotHeldException.cs
- LinqDataSourceValidationException.cs
- BufferCache.cs
- XXXInfos.cs
- GridView.cs
- _ListenerResponseStream.cs
- EntryIndex.cs
- SerializationStore.cs
- SerialStream.cs
- UrlPath.cs
- Filter.cs
- EnumConverter.cs
- DataServiceEntityAttribute.cs
- unsafenativemethodstextservices.cs
- Rijndael.cs
- ToolStripLabel.cs
- StringFunctions.cs
- MaskedTextBox.cs
- FlowDocumentReaderAutomationPeer.cs
- Stylesheet.cs
- EditorBrowsableAttribute.cs
- ContentIterators.cs
- DecimalAnimationBase.cs
- Hash.cs
- ShaderEffect.cs
- ProjectionCamera.cs
- TabControlToolboxItem.cs
- DataGridViewRowConverter.cs
- EmptyControlCollection.cs
- RewritingProcessor.cs
- SimpleApplicationHost.cs
- HttpResponse.cs
- ProfilePropertyNameValidator.cs
- ProcessModuleCollection.cs
- OleDbConnection.cs
- AsymmetricAlgorithm.cs
- SamlAuthorityBinding.cs
- CodeAssignStatement.cs
- SqlPersonalizationProvider.cs
- FixedTextContainer.cs
- IDispatchConstantAttribute.cs
- RegularExpressionValidator.cs
- TextDecoration.cs
- TimeIntervalCollection.cs
- CachedFontFamily.cs
- SelectionHighlightInfo.cs
- ObjectPersistData.cs
- ReferenceEqualityComparer.cs