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
- Int32AnimationBase.cs
- CqlParser.cs
- DataRecordObjectView.cs
- arabicshape.cs
- SchemaNamespaceManager.cs
- GlyphShapingProperties.cs
- UnauthorizedAccessException.cs
- WebPartMinimizeVerb.cs
- ConfigXmlDocument.cs
- WorkflowViewStateService.cs
- MobileDeviceCapabilitiesSectionHandler.cs
- TextReader.cs
- MemberDescriptor.cs
- Icon.cs
- GestureRecognizer.cs
- ComponentEditorForm.cs
- LinqExpressionNormalizer.cs
- DefaultEventAttribute.cs
- CodeDesigner.cs
- NetworkAddressChange.cs
- cookieexception.cs
- HttpWebRequest.cs
- TemplateColumn.cs
- Pair.cs
- ReadOnlyAttribute.cs
- TimeSpanValidator.cs
- SQLSingle.cs
- DependencyPropertyAttribute.cs
- WebRequestModuleElementCollection.cs
- UnmanagedMemoryStreamWrapper.cs
- NameSpaceExtractor.cs
- UIElement.cs
- InternalConfigHost.cs
- MsmqElementBase.cs
- ListControl.cs
- CalendarDesigner.cs
- PrimitiveCodeDomSerializer.cs
- PersistenceTypeAttribute.cs
- RadioButtonList.cs
- RectIndependentAnimationStorage.cs
- DataKey.cs
- Rectangle.cs
- DataSourceControlBuilder.cs
- CellTreeNodeVisitors.cs
- NoneExcludedImageIndexConverter.cs
- CodeFieldReferenceExpression.cs
- XPathNode.cs
- ToolBarButtonClickEvent.cs
- EventMetadata.cs
- Formatter.cs
- ResourcePermissionBase.cs
- Helpers.cs
- RepeatInfo.cs
- UidPropertyAttribute.cs
- NCryptSafeHandles.cs
- SerializationException.cs
- SystemResources.cs
- TargetControlTypeAttribute.cs
- DataGridItemCollection.cs
- Transform.cs
- DbProviderManifest.cs
- DataMisalignedException.cs
- SchemaCollectionCompiler.cs
- AmbientLight.cs
- TaskFileService.cs
- Token.cs
- mediaclock.cs
- CompareInfo.cs
- LicenseManager.cs
- Menu.cs
- TextFormatterHost.cs
- Semaphore.cs
- WebScriptServiceHostFactory.cs
- NativeObjectSecurity.cs
- NativeMethodsOther.cs
- MissingManifestResourceException.cs
- WindowPatternIdentifiers.cs
- ViewBase.cs
- KeyValueInternalCollection.cs
- DataGridViewRowHeightInfoNeededEventArgs.cs
- AuthenticatingEventArgs.cs
- FloaterParagraph.cs
- ScrollChrome.cs
- IntAverageAggregationOperator.cs
- PropertyMap.cs
- DeferrableContentConverter.cs
- BinaryMessageEncodingBindingElement.cs
- ExpandCollapsePatternIdentifiers.cs
- StreamingContext.cs
- DaylightTime.cs
- EntityDataSourceMemberPath.cs
- PartBasedPackageProperties.cs
- AncillaryOps.cs
- remotingproxy.cs
- MainMenu.cs
- XmlLanguage.cs
- FullTextLine.cs
- FixedHyperLink.cs
- SqlUnionizer.cs
- TextStore.cs