Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / ndp / fx / src / DataEntity / System / Data / EntityClient / EntityAdapter.cs / 1 / 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
- ProtectedConfiguration.cs
- RenderTargetBitmap.cs
- ApplicationGesture.cs
- DataServiceRequestException.cs
- OracleLob.cs
- OleDbException.cs
- shaperfactoryquerycacheentry.cs
- HorizontalAlignConverter.cs
- AnimatedTypeHelpers.cs
- LinearKeyFrames.cs
- DataRelationCollection.cs
- TextEffect.cs
- TraceSwitch.cs
- CustomAttributeFormatException.cs
- MdImport.cs
- SystemParameters.cs
- BroadcastEventHelper.cs
- _ConnectStream.cs
- WebRequestModuleElementCollection.cs
- Lazy.cs
- UnionCqlBlock.cs
- Misc.cs
- KeyBinding.cs
- Vector3DAnimation.cs
- EventHandlers.cs
- WebBrowserProgressChangedEventHandler.cs
- PersianCalendar.cs
- XmlAutoDetectWriter.cs
- ExplicitDiscriminatorMap.cs
- MetadataArtifactLoaderXmlReaderWrapper.cs
- CryptoStream.cs
- EventArgs.cs
- FixedSchema.cs
- TreeView.cs
- PrimitiveList.cs
- PropertyEmitter.cs
- CommunicationObjectManager.cs
- DiagnosticTrace.cs
- ZipIOExtraFieldZip64Element.cs
- WsdlParser.cs
- AstTree.cs
- MailBnfHelper.cs
- CodeGenerator.cs
- Wow64ConfigurationLoader.cs
- PackageDigitalSignature.cs
- EmptyArray.cs
- ResetableIterator.cs
- DriveInfo.cs
- XmlResolver.cs
- HTMLTextWriter.cs
- Codec.cs
- DesignerLoader.cs
- SizeFConverter.cs
- EventTask.cs
- MoveSizeWinEventHandler.cs
- ValueProviderWrapper.cs
- ResourceIDHelper.cs
- PrimitiveSchema.cs
- SQLBinary.cs
- ApplicationBuildProvider.cs
- CombinedGeometry.cs
- _SSPIWrapper.cs
- EditingCoordinator.cs
- FontFamily.cs
- RefExpr.cs
- DynamicDocumentPaginator.cs
- _AuthenticationState.cs
- ListSortDescriptionCollection.cs
- ExcCanonicalXml.cs
- PrimitiveCodeDomSerializer.cs
- SelectionEditor.cs
- AssociationType.cs
- ComboBoxRenderer.cs
- PartialArray.cs
- TemplateControlParser.cs
- WebPartAddingEventArgs.cs
- QilList.cs
- WindowsFormsHostAutomationPeer.cs
- ToolStripItemClickedEventArgs.cs
- WorkflowRuntimeElement.cs
- GuidelineSet.cs
- ThreadStateException.cs
- ThousandthOfEmRealDoubles.cs
- BufferedGraphicsManager.cs
- FormattedText.cs
- IndividualDeviceConfig.cs
- _SingleItemRequestCache.cs
- DesignerAdapterUtil.cs
- UTF8Encoding.cs
- OpCodes.cs
- StringValidator.cs
- Operand.cs
- SrgsText.cs
- InvalidWMPVersionException.cs
- SQLDateTimeStorage.cs
- ListViewContainer.cs
- ContractListAdapter.cs
- DesignerTextViewAdapter.cs
- InputElement.cs
- ObjectQueryExecutionPlan.cs