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
- GPPOINT.cs
- RectConverter.cs
- RectangleHotSpot.cs
- DataGridAddNewRow.cs
- CheckBox.cs
- WebPartZone.cs
- ScrollViewer.cs
- TraceSection.cs
- Int32Converter.cs
- SafeEventHandle.cs
- GridViewAutomationPeer.cs
- HWStack.cs
- DocumentationServerProtocol.cs
- SecurityAlgorithmSuiteConverter.cs
- ExtensibleClassFactory.cs
- SqlTopReducer.cs
- File.cs
- PersonalizationProviderHelper.cs
- CorrelationRequestContext.cs
- XmlNamespaceDeclarationsAttribute.cs
- JsonDeserializer.cs
- DynamicDataRoute.cs
- WindowsFormsLinkLabel.cs
- SortableBindingList.cs
- BlurBitmapEffect.cs
- UIElement3D.cs
- AnnotationElement.cs
- EntityContainer.cs
- DataSourceView.cs
- FixedPage.cs
- HtmlSelect.cs
- DrawingVisual.cs
- OperationCanceledException.cs
- CurrentChangingEventArgs.cs
- ConsoleTraceListener.cs
- __Filters.cs
- DefaultValueConverter.cs
- WebBaseEventKeyComparer.cs
- FacetEnabledSchemaElement.cs
- JsonCollectionDataContract.cs
- TPLETWProvider.cs
- GuidConverter.cs
- DataGridViewLinkColumn.cs
- ParentQuery.cs
- OptimizerPatterns.cs
- DataSourceCacheDurationConverter.cs
- SimpleTypeResolver.cs
- TcpChannelListener.cs
- NumberSubstitution.cs
- Wizard.cs
- BooleanKeyFrameCollection.cs
- FixedSOMTableRow.cs
- TreeWalkHelper.cs
- SQLChars.cs
- RegexCode.cs
- EmulateRecognizeCompletedEventArgs.cs
- UInt16Converter.cs
- StringInfo.cs
- HttpStreams.cs
- ThicknessAnimationUsingKeyFrames.cs
- SimpleNameService.cs
- HttpContext.cs
- UICuesEvent.cs
- PermissionToken.cs
- StatusStrip.cs
- XPathNodeHelper.cs
- PersonalizablePropertyEntry.cs
- ObjectStorage.cs
- EncoderParameters.cs
- TemplateComponentConnector.cs
- ElementNotAvailableException.cs
- RenderOptions.cs
- MailMessageEventArgs.cs
- FontStyleConverter.cs
- TextRangeEdit.cs
- HttpListenerPrefixCollection.cs
- LassoSelectionBehavior.cs
- IssuedTokenParametersElement.cs
- ButtonColumn.cs
- PageWrapper.cs
- UriParserTemplates.cs
- XamlDesignerSerializationManager.cs
- BindToObject.cs
- Stylesheet.cs
- MobileControlDesigner.cs
- QuaternionAnimation.cs
- BinHexEncoder.cs
- xdrvalidator.cs
- ResourceReferenceKeyNotFoundException.cs
- ModulesEntry.cs
- COSERVERINFO.cs
- TcpChannelHelper.cs
- LastQueryOperator.cs
- ResourceDictionary.cs
- IdentifierService.cs
- ChangeNode.cs
- BooleanProjectedSlot.cs
- FactoryMaker.cs
- RemoteCryptoSignHashRequest.cs
- HttpRequestCacheValidator.cs