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
- FormsAuthenticationConfiguration.cs
- SymbolTable.cs
- TabControl.cs
- ActivityUtilities.cs
- InlineUIContainer.cs
- BoolExpr.cs
- DataGrid.cs
- TextProperties.cs
- XmlElementAttribute.cs
- MaterialGroup.cs
- NumericUpDownAcceleration.cs
- Viewport2DVisual3D.cs
- ZoneLinkButton.cs
- AudienceUriMode.cs
- TextAction.cs
- PrimitiveXmlSerializers.cs
- CodeParameterDeclarationExpression.cs
- Light.cs
- BridgeDataRecord.cs
- XmlSchemaSequence.cs
- Boolean.cs
- DataGridViewEditingControlShowingEventArgs.cs
- DataGridViewCell.cs
- HttpDictionary.cs
- InputElement.cs
- ObjectContext.cs
- OciEnlistContext.cs
- PathGeometry.cs
- SmiTypedGetterSetter.cs
- StylusLogic.cs
- SecurityKeyUsage.cs
- ControlPropertyNameConverter.cs
- WebPageTraceListener.cs
- DetailsViewUpdateEventArgs.cs
- MutexSecurity.cs
- HtmlInputButton.cs
- SQLDateTime.cs
- JsonByteArrayDataContract.cs
- SmtpReplyReader.cs
- Button.cs
- XmlSerializerFactory.cs
- OleDbException.cs
- WSHttpTransportSecurityElement.cs
- RotateTransform3D.cs
- InheritanceContextChangedEventManager.cs
- EncoderNLS.cs
- SqlDataSourceStatusEventArgs.cs
- HtmlControlPersistable.cs
- DataList.cs
- SqlDependency.cs
- SmtpFailedRecipientException.cs
- CorrelationTokenTypeConvertor.cs
- SchemaObjectWriter.cs
- XPathDocumentNavigator.cs
- ConsumerConnectionPoint.cs
- DynamicFilterExpression.cs
- CompoundFileStorageReference.cs
- Pens.cs
- DataGridViewCellMouseEventArgs.cs
- base64Transforms.cs
- JsonByteArrayDataContract.cs
- OracleCommand.cs
- OutputCacheSettings.cs
- isolationinterop.cs
- DataControlReference.cs
- CodeDirectoryCompiler.cs
- CatalogPartCollection.cs
- FormViewUpdateEventArgs.cs
- XslAst.cs
- ComboBoxItem.cs
- URLMembershipCondition.cs
- SafeNativeMethods.cs
- NativeCppClassAttribute.cs
- ColumnMapVisitor.cs
- BooleanStorage.cs
- EntityEntry.cs
- EntityDataSourceContainerNameConverter.cs
- BaseResourcesBuildProvider.cs
- ThaiBuddhistCalendar.cs
- ADMembershipProvider.cs
- DES.cs
- DateTimeOffsetConverter.cs
- SubtreeProcessor.cs
- ReachNamespaceInfo.cs
- DataKeyArray.cs
- DeploymentSection.cs
- SoapTypeAttribute.cs
- SqlClientWrapperSmiStreamChars.cs
- ReadOnlyDataSourceView.cs
- EditorAttribute.cs
- KeyFrames.cs
- ServiceEndpointAssociationProvider.cs
- ConfigsHelper.cs
- SynchronizedKeyedCollection.cs
- OleDbMetaDataFactory.cs
- ServiceDebugElement.cs
- DataGridViewBindingCompleteEventArgs.cs
- OrderedDictionaryStateHelper.cs
- AppSettingsReader.cs
- IssuedTokenParametersEndpointAddressElement.cs