Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataEntity / System / Data / EntityClient / EntityTransaction.cs / 1305376 / EntityTransaction.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System.Collections.Generic; using System.Text; using System.Data; using System.Data.Common; using System.Diagnostics; namespace System.Data.EntityClient { using Metadata.Edm; ////// Class representing a transaction for the conceptual layer /// public sealed class EntityTransaction : DbTransaction { private EntityConnection _connection; private DbTransaction _storeTransaction; ////// Constructs the EntityTransaction object with an associated connection and the underlying store transaction /// /// The EntityConnetion object owning this transaction /// The underlying transaction object internal EntityTransaction(EntityConnection connection, DbTransaction storeTransaction) : base() { Debug.Assert(connection != null && storeTransaction != null); this._connection = connection; this._storeTransaction = storeTransaction; } ////// The connection object owning this transaction object /// public new EntityConnection Connection { get { // follow the store transaction behavior return ((null != _storeTransaction.Connection) ? _connection : null); } } ////// The connection object owning this transaction object /// protected override DbConnection DbConnection { get { // follow the store transaction behavior return ((null != _storeTransaction.Connection) ? _connection : null); } } ////// The isolation level of this transaction /// public override IsolationLevel IsolationLevel { get { return this._storeTransaction.IsolationLevel; } } ////// Gets the DbTransaction for the underlying provider transaction /// internal DbTransaction StoreTransaction { get { return this._storeTransaction; } } ////// Commits the transaction /// public override void Commit() { try { this._storeTransaction.Commit(); } catch (Exception e) { if (EntityUtil.IsCatchableExceptionType(e)) { throw EntityUtil.Provider(@"Commit", e); } throw; } this.ClearCurrentTransaction(); } ////// Rolls back the transaction /// public override void Rollback() { try { this._storeTransaction.Rollback(); } catch (Exception e) { if (EntityUtil.IsCatchableExceptionType(e)) { throw EntityUtil.Provider(@"Rollback", e); } throw; } this.ClearCurrentTransaction(); } ////// Cleans up this transaction object /// /// true to release both managed and unmanaged resources; false to release only unmanaged resources protected override void Dispose(bool disposing) { if (disposing) { this.ClearCurrentTransaction(); this._storeTransaction.Dispose(); } base.Dispose(disposing); } ////// Helper method to wrap EntityConnection.ClearCurrentTransaction() /// private void ClearCurrentTransaction() { if (_connection.CurrentTransaction == this) { _connection.ClearCurrentTransaction(); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System.Collections.Generic; using System.Text; using System.Data; using System.Data.Common; using System.Diagnostics; namespace System.Data.EntityClient { using Metadata.Edm; ////// Class representing a transaction for the conceptual layer /// public sealed class EntityTransaction : DbTransaction { private EntityConnection _connection; private DbTransaction _storeTransaction; ////// Constructs the EntityTransaction object with an associated connection and the underlying store transaction /// /// The EntityConnetion object owning this transaction /// The underlying transaction object internal EntityTransaction(EntityConnection connection, DbTransaction storeTransaction) : base() { Debug.Assert(connection != null && storeTransaction != null); this._connection = connection; this._storeTransaction = storeTransaction; } ////// The connection object owning this transaction object /// public new EntityConnection Connection { get { // follow the store transaction behavior return ((null != _storeTransaction.Connection) ? _connection : null); } } ////// The connection object owning this transaction object /// protected override DbConnection DbConnection { get { // follow the store transaction behavior return ((null != _storeTransaction.Connection) ? _connection : null); } } ////// The isolation level of this transaction /// public override IsolationLevel IsolationLevel { get { return this._storeTransaction.IsolationLevel; } } ////// Gets the DbTransaction for the underlying provider transaction /// internal DbTransaction StoreTransaction { get { return this._storeTransaction; } } ////// Commits the transaction /// public override void Commit() { try { this._storeTransaction.Commit(); } catch (Exception e) { if (EntityUtil.IsCatchableExceptionType(e)) { throw EntityUtil.Provider(@"Commit", e); } throw; } this.ClearCurrentTransaction(); } ////// Rolls back the transaction /// public override void Rollback() { try { this._storeTransaction.Rollback(); } catch (Exception e) { if (EntityUtil.IsCatchableExceptionType(e)) { throw EntityUtil.Provider(@"Rollback", e); } throw; } this.ClearCurrentTransaction(); } ////// Cleans up this transaction object /// /// true to release both managed and unmanaged resources; false to release only unmanaged resources protected override void Dispose(bool disposing) { if (disposing) { this.ClearCurrentTransaction(); this._storeTransaction.Dispose(); } base.Dispose(disposing); } ////// Helper method to wrap EntityConnection.ClearCurrentTransaction() /// private void ClearCurrentTransaction() { if (_connection.CurrentTransaction == this) { _connection.ClearCurrentTransaction(); } } } } // 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
- FacetEnabledSchemaElement.cs
- InvalidContentTypeException.cs
- MetadataPropertyvalue.cs
- ContextBase.cs
- GlyphRunDrawing.cs
- PropertyValidationContext.cs
- SQLDateTimeStorage.cs
- DataGridViewDataConnection.cs
- AccessedThroughPropertyAttribute.cs
- DoubleAnimationBase.cs
- DataBoundControlHelper.cs
- SecurityKeyType.cs
- MenuItemStyleCollection.cs
- OleDbTransaction.cs
- ListControlBoundActionList.cs
- XmlnsPrefixAttribute.cs
- MDIControlStrip.cs
- FolderBrowserDialogDesigner.cs
- BinHexEncoder.cs
- KnownColorTable.cs
- SystemWebExtensionsSectionGroup.cs
- IisTraceWebEventProvider.cs
- QueryPageSettingsEventArgs.cs
- XmlTextEncoder.cs
- StateDesigner.cs
- XmlSchema.cs
- AuthorizationRuleCollection.cs
- ConnectionInterfaceCollection.cs
- CatalogZoneBase.cs
- ArrayList.cs
- _BufferOffsetSize.cs
- WebPartConnectionsCancelEventArgs.cs
- HtmlInputSubmit.cs
- FromReply.cs
- SystemResourceHost.cs
- DataObjectMethodAttribute.cs
- LambdaCompiler.Generated.cs
- DesignerSerializationOptionsAttribute.cs
- FrameworkContentElement.cs
- Rect.cs
- CompilerTypeWithParams.cs
- CursorConverter.cs
- SourceFileInfo.cs
- SqlNodeAnnotation.cs
- TreeNodeEventArgs.cs
- HostExecutionContextManager.cs
- XmlSchemas.cs
- DtdParser.cs
- BinaryParser.cs
- ActivityDesigner.cs
- SoundPlayer.cs
- WSSecurityOneDotOneReceiveSecurityHeader.cs
- ControllableStoryboardAction.cs
- SizeAnimationUsingKeyFrames.cs
- SchemaAttDef.cs
- PaintValueEventArgs.cs
- X509Chain.cs
- ExtendedPropertyDescriptor.cs
- EpmCustomContentDeSerializer.cs
- WindowHideOrCloseTracker.cs
- ReadOnlyPermissionSet.cs
- SpAudioStreamWrapper.cs
- StructuredTypeEmitter.cs
- Graph.cs
- StackBuilderSink.cs
- BitmapMetadata.cs
- FamilyMap.cs
- SqlCharStream.cs
- XmlHelper.cs
- DeobfuscatingStream.cs
- controlskin.cs
- EdmEntityTypeAttribute.cs
- HttpFileCollection.cs
- EdmMember.cs
- EditorZone.cs
- bindurihelper.cs
- PersonalizationStateQuery.cs
- _SafeNetHandles.cs
- FileLoadException.cs
- BitmapVisualManager.cs
- StringBuilder.cs
- FlowDocumentReader.cs
- ProfileService.cs
- ZeroOpNode.cs
- DefaultDiscoveryServiceExtension.cs
- InsufficientMemoryException.cs
- Logging.cs
- GlobalProxySelection.cs
- SwitchLevelAttribute.cs
- DesignBindingConverter.cs
- VectorKeyFrameCollection.cs
- FrameworkContextData.cs
- Point3D.cs
- GridViewColumnHeaderAutomationPeer.cs
- DataServiceStreamResponse.cs
- SafeMILHandleMemoryPressure.cs
- prefixendpointaddressmessagefiltertable.cs
- InternalRelationshipCollection.cs
- ConstrainedDataObject.cs
- ImageInfo.cs