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
- RelatedPropertyManager.cs
- TablePattern.cs
- XamlStackWriter.cs
- ReaderWriterLock.cs
- SortableBindingList.cs
- ExpressionWriter.cs
- SQLStringStorage.cs
- DelayedRegex.cs
- SerializationEventsCache.cs
- CodeIdentifier.cs
- AssemblyCache.cs
- Bits.cs
- _UriTypeConverter.cs
- ClassicBorderDecorator.cs
- IconBitmapDecoder.cs
- TreeNodeStyle.cs
- XmlMtomReader.cs
- TypeConverterAttribute.cs
- SmuggledIUnknown.cs
- SqlDataSourceCache.cs
- SocketInformation.cs
- designeractionbehavior.cs
- ContentTextAutomationPeer.cs
- _HTTPDateParse.cs
- TreeViewAutomationPeer.cs
- KeySpline.cs
- InputLanguageEventArgs.cs
- MatrixKeyFrameCollection.cs
- ProcessModuleDesigner.cs
- StringUtil.cs
- DataGridPageChangedEventArgs.cs
- OdbcReferenceCollection.cs
- RawStylusSystemGestureInputReport.cs
- MemberRelationshipService.cs
- Lookup.cs
- PeerNameResolver.cs
- CommandLibraryHelper.cs
- NetworkInformationPermission.cs
- WebEventTraceProvider.cs
- OutputCacheSettings.cs
- FormViewInsertedEventArgs.cs
- TraceLevelStore.cs
- Parser.cs
- TypeConverterMarkupExtension.cs
- FixedSOMPageConstructor.cs
- Errors.cs
- TypeUtil.cs
- ScrollPattern.cs
- Ticks.cs
- SolidBrush.cs
- UmAlQuraCalendar.cs
- ParamArrayAttribute.cs
- CaseStatementProjectedSlot.cs
- WindowsSpinner.cs
- NonVisualControlAttribute.cs
- AppLevelCompilationSectionCache.cs
- IntegerFacetDescriptionElement.cs
- DesignOnlyAttribute.cs
- WindowsTokenRoleProvider.cs
- DataGridHeaderBorder.cs
- EntityConnection.cs
- EntityViewContainer.cs
- MemoryMappedView.cs
- BuildProvider.cs
- FormattedText.cs
- FloaterBaseParaClient.cs
- DesignOnlyAttribute.cs
- CodeArrayCreateExpression.cs
- DataGridViewColumnDesigner.cs
- Expr.cs
- XmlToDatasetMap.cs
- ListQueryResults.cs
- RequestCachingSection.cs
- ReferenceService.cs
- TypeSystemHelpers.cs
- Baml2006Reader.cs
- EventsTab.cs
- ControlCachePolicy.cs
- LogRecordSequence.cs
- WebMessageEncoderFactory.cs
- BitmapSizeOptions.cs
- PointLight.cs
- ConfigurationCollectionAttribute.cs
- StylusPlugin.cs
- Pair.cs
- SHA1Managed.cs
- SystemDropShadowChrome.cs
- WinFormsComponentEditor.cs
- SatelliteContractVersionAttribute.cs
- AdornerHitTestResult.cs
- ExtendLockCommand.cs
- EmptyEnumerator.cs
- HealthMonitoringSectionHelper.cs
- TreeIterators.cs
- SpotLight.cs
- ToolStripItem.cs
- NumericExpr.cs
- BaseDataBoundControl.cs
- X509ScopedServiceCertificateElementCollection.cs
- AssemblyCollection.cs