Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / ndp / fx / src / DataEntity / System / Data / EntityClient / EntityTransaction.cs / 2 / EntityTransaction.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.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 [....], [....] //--------------------------------------------------------------------- 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
- EdmConstants.cs
- DateTimeSerializationSection.cs
- DocComment.cs
- Point4D.cs
- PrintSystemException.cs
- GraphicsContext.cs
- SqlDataSourceEnumerator.cs
- StringToken.cs
- OleDbRowUpdatingEvent.cs
- UserMapPath.cs
- TransformGroup.cs
- BinaryReader.cs
- EntityDesignerUtils.cs
- TextPointerBase.cs
- DebugHandleTracker.cs
- WebPartDescriptionCollection.cs
- CalendarTable.cs
- Span.cs
- TrimSurroundingWhitespaceAttribute.cs
- Brushes.cs
- StickyNoteHelper.cs
- DllNotFoundException.cs
- DataSourceListEditor.cs
- XmlEncodedRawTextWriter.cs
- cookiecollection.cs
- IDispatchConstantAttribute.cs
- ElementUtil.cs
- MSAANativeProvider.cs
- RequestQueryProcessor.cs
- XmlNodeList.cs
- CodeAttachEventStatement.cs
- SyndicationDeserializer.cs
- EmbeddedMailObjectsCollection.cs
- SocketSettings.cs
- SoapIgnoreAttribute.cs
- DataGridViewIntLinkedList.cs
- Stylus.cs
- XmlSerializerNamespaces.cs
- IncomingWebRequestContext.cs
- BitmapData.cs
- X509ChainElement.cs
- OdbcConnection.cs
- Internal.cs
- EncoderFallback.cs
- IgnoreSection.cs
- HttpResponseInternalWrapper.cs
- XmlAnyAttributeAttribute.cs
- FixedPage.cs
- SafeSecurityHelper.cs
- RemotingConfigParser.cs
- TextLineBreak.cs
- SqlRowUpdatedEvent.cs
- SqlDataSourceConfigureSortForm.cs
- TextElement.cs
- ObjectItemCollection.cs
- LockCookie.cs
- PathGradientBrush.cs
- SessionStateContainer.cs
- TraceUtils.cs
- CookielessData.cs
- XmlCharCheckingWriter.cs
- EncryptedType.cs
- OracleNumber.cs
- LocalValueEnumerator.cs
- ArgumentNullException.cs
- Transform3DGroup.cs
- SHA1Managed.cs
- XmlSchemaImporter.cs
- PrintController.cs
- PrinterUnitConvert.cs
- Types.cs
- MimeBasePart.cs
- XhtmlBasicPhoneCallAdapter.cs
- RoutingConfiguration.cs
- XmlSchemaAll.cs
- ModuleConfigurationInfo.cs
- ExtensibleClassFactory.cs
- XXXOnTypeBuilderInstantiation.cs
- EventLogEntryCollection.cs
- ExpressionNode.cs
- TraceSwitch.cs
- AttachmentCollection.cs
- IdentityModelDictionary.cs
- OleDbCommandBuilder.cs
- StandardToolWindows.cs
- IisTraceListener.cs
- Ref.cs
- ViewBox.cs
- SessionIDManager.cs
- ExclusiveHandleList.cs
- MouseActionConverter.cs
- ServiceElement.cs
- SQLDecimal.cs
- Rule.cs
- RightNameExpirationInfoPair.cs
- SafeProcessHandle.cs
- RepeaterCommandEventArgs.cs
- BamlLocalizer.cs
- SqlRetyper.cs
- CounterCreationData.cs