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
- TextureBrush.cs
- HtmlTableRowCollection.cs
- DoubleIndependentAnimationStorage.cs
- GeneralTransform3D.cs
- IdleTimeoutMonitor.cs
- ExtensionWindow.cs
- HttpHandlerAction.cs
- HttpApplicationFactory.cs
- ProgressiveCrcCalculatingStream.cs
- TraceHandlerErrorFormatter.cs
- keycontainerpermission.cs
- EdmType.cs
- ScrollEventArgs.cs
- HostVisual.cs
- CheckedPointers.cs
- xamlnodes.cs
- DecoderNLS.cs
- Win32.cs
- SequentialWorkflowRootDesigner.cs
- _TimerThread.cs
- PriorityBinding.cs
- SqlNodeTypeOperators.cs
- Socket.cs
- PageWrapper.cs
- ListViewItemSelectionChangedEvent.cs
- CompositeCollectionView.cs
- EncoderFallback.cs
- ThreadExceptionEvent.cs
- InvokePattern.cs
- SplashScreenNativeMethods.cs
- EntityDataSourceConfigureObjectContext.cs
- PathFigureCollectionConverter.cs
- DataTableCollection.cs
- PropertyValueUIItem.cs
- ImageListUtils.cs
- HttpStaticObjectsCollectionBase.cs
- CqlGenerator.cs
- ClientSettingsProvider.cs
- BinaryObjectWriter.cs
- SystemInfo.cs
- CryptographicAttribute.cs
- Timeline.cs
- TabControl.cs
- AutomationElementCollection.cs
- TransformerInfo.cs
- DownloadProgressEventArgs.cs
- Duration.cs
- DataSourceControlBuilder.cs
- OracleTransaction.cs
- NegatedConstant.cs
- ListViewGroupConverter.cs
- DesignTimeParseData.cs
- ResourceType.cs
- ButtonBase.cs
- ExpressionConverter.cs
- ExpressionBuilder.cs
- SecurityTokenValidationException.cs
- TransactionWaitAsyncResult.cs
- LessThan.cs
- Column.cs
- EntityClientCacheEntry.cs
- TypeReference.cs
- MethodRental.cs
- XmlSchemaNotation.cs
- HostedHttpContext.cs
- BitmapFrame.cs
- CompositeActivityTypeDescriptor.cs
- COM2ColorConverter.cs
- CodeMemberField.cs
- FormatSelectingMessageInspector.cs
- SiteMapProvider.cs
- XmlDocumentType.cs
- MSAAWinEventWrap.cs
- DbDataSourceEnumerator.cs
- DeliveryRequirementsAttribute.cs
- EndOfStreamException.cs
- CategoryValueConverter.cs
- Console.cs
- IISMapPath.cs
- StringFreezingAttribute.cs
- RequestChannel.cs
- ClonableStack.cs
- Page.cs
- DbConnectionHelper.cs
- DomNameTable.cs
- ConfigurationSectionGroupCollection.cs
- XPathMessageFilterElement.cs
- HttpServerVarsCollection.cs
- Parser.cs
- XmlDataDocument.cs
- EntityDataSourceChangingEventArgs.cs
- ActiveXSite.cs
- ToolStripRenderer.cs
- ToolstripProfessionalRenderer.cs
- SessionEndingCancelEventArgs.cs
- CompileLiteralTextParser.cs
- FontFamilyConverter.cs
- AspNetHostingPermission.cs
- DataServiceRequestException.cs
- TabControlToolboxItem.cs