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
- ConstructorArgumentAttribute.cs
- KeysConverter.cs
- Axis.cs
- MenuItemBinding.cs
- ReachPrintTicketSerializerAsync.cs
- Int16Animation.cs
- Mutex.cs
- Timer.cs
- EntityContainerEmitter.cs
- XmlSecureResolver.cs
- IOThreadTimer.cs
- UnicastIPAddressInformationCollection.cs
- ConnectorDragDropGlyph.cs
- Size3DValueSerializer.cs
- FileCodeGroup.cs
- SchemaMapping.cs
- SR.Designer.cs
- TemplateKey.cs
- ChildTable.cs
- AnnotationComponentChooser.cs
- SigningCredentials.cs
- ClassDataContract.cs
- DecimalConstantAttribute.cs
- SingleConverter.cs
- DoWorkEventArgs.cs
- CompositeCollection.cs
- SqlBuilder.cs
- AutomationIdentifierGuids.cs
- EntityViewGenerationAttribute.cs
- CommonXSendMessage.cs
- Solver.cs
- AnnotationAuthorChangedEventArgs.cs
- ContentPosition.cs
- shaperfactory.cs
- StateMachine.cs
- CompressStream.cs
- SHA256Managed.cs
- ToolStripRenderer.cs
- PropertyHelper.cs
- FormatStringEditor.cs
- RsaKeyIdentifierClause.cs
- PeerApplication.cs
- Funcletizer.cs
- Stylesheet.cs
- MessagePartProtectionMode.cs
- SelectionRangeConverter.cs
- HScrollBar.cs
- TreeNodeStyle.cs
- CacheHelper.cs
- FontCacheUtil.cs
- ByteAnimationUsingKeyFrames.cs
- PackagingUtilities.cs
- SslSecurityTokenParameters.cs
- CharAnimationBase.cs
- CheckableControlBaseAdapter.cs
- IDispatchConstantAttribute.cs
- ForeignKeyConstraint.cs
- WinOEToolBoxItem.cs
- BaseAppDomainProtocolHandler.cs
- DesignerVerbCollection.cs
- WSFederationHttpSecurityElement.cs
- WindowsSolidBrush.cs
- StringAttributeCollection.cs
- ButtonChrome.cs
- WebReferencesBuildProvider.cs
- MsmqIntegrationProcessProtocolHandler.cs
- XhtmlTextWriter.cs
- DataSetMappper.cs
- WebPartDisplayModeEventArgs.cs
- ActivityExecutor.cs
- GetPageNumberCompletedEventArgs.cs
- BinaryEditor.cs
- HttpWriter.cs
- Transform.cs
- ValidationRuleCollection.cs
- ProviderCollection.cs
- System.Data_BID.cs
- StringDictionaryEditor.cs
- TextEditor.cs
- InheritanceRules.cs
- MenuItemCollection.cs
- BindingContext.cs
- SemanticResultValue.cs
- AttachInfo.cs
- MimeFormImporter.cs
- DataGridViewRowStateChangedEventArgs.cs
- Table.cs
- HttpFileCollection.cs
- SmtpAuthenticationManager.cs
- EventTask.cs
- CustomAttributeFormatException.cs
- LookupNode.cs
- OperationCanceledException.cs
- EntityDataSourceQueryBuilder.cs
- Size.cs
- TemplatingOptionsDialog.cs
- SelectingProviderEventArgs.cs
- EmptyControlCollection.cs
- ResourceExpressionBuilder.cs
- StringPropertyBuilder.cs