Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- AsyncOperation.cs
- ConditionalAttribute.cs
- WindowHideOrCloseTracker.cs
- DataBindingCollection.cs
- DecoderExceptionFallback.cs
- Contracts.cs
- PropertyExpression.cs
- CounterSampleCalculator.cs
- HashStream.cs
- DataGrid.cs
- AvTrace.cs
- HttpCapabilitiesEvaluator.cs
- PowerEase.cs
- PropertyDescriptors.cs
- TimeSpanConverter.cs
- MouseEvent.cs
- DbModificationClause.cs
- MultipartContentParser.cs
- TagPrefixInfo.cs
- WindowVisualStateTracker.cs
- ExpressionList.cs
- FtpWebRequest.cs
- DesignerObjectListAdapter.cs
- codemethodreferenceexpression.cs
- RegistrationContext.cs
- ShaderEffect.cs
- ProcessInputEventArgs.cs
- _ListenerAsyncResult.cs
- TextRunCache.cs
- SynchronizedDispatch.cs
- BinarySerializer.cs
- SystemDropShadowChrome.cs
- DataGridViewComponentPropertyGridSite.cs
- XmlBinaryReader.cs
- ListViewDeleteEventArgs.cs
- CodeArrayCreateExpression.cs
- ScaleTransform3D.cs
- DocComment.cs
- StyleXamlTreeBuilder.cs
- BaseHashHelper.cs
- NativeMethods.cs
- SqlDataSourceEnumerator.cs
- ExpressionEditorSheet.cs
- EntityDesignerBuildProvider.cs
- Types.cs
- ObjectToModelValueConverter.cs
- PDBReader.cs
- RequestCacheManager.cs
- ComEventsHelper.cs
- DataGridViewAutoSizeColumnModeEventArgs.cs
- FontDialog.cs
- PropertyNames.cs
- ScriptingSectionGroup.cs
- ItemCheckedEvent.cs
- TypeConverterValueSerializer.cs
- MachineKeySection.cs
- CodePropertyReferenceExpression.cs
- CreateWorkflowOwnerCommand.cs
- Type.cs
- FixedSOMTable.cs
- DbConnectionStringBuilder.cs
- TypeLibConverter.cs
- DesignerAutoFormat.cs
- COM2Enum.cs
- NameNode.cs
- HashSetDebugView.cs
- DownloadProgressEventArgs.cs
- Int32RectValueSerializer.cs
- TextEffect.cs
- EnumValAlphaComparer.cs
- ListViewItemSelectionChangedEvent.cs
- WSSecurityOneDotZeroReceiveSecurityHeader.cs
- PackageProperties.cs
- XamlStyleSerializer.cs
- Margins.cs
- FilterQuery.cs
- OuterGlowBitmapEffect.cs
- DataRecordInternal.cs
- ClientTargetSection.cs
- Vector3DAnimation.cs
- NaturalLanguageHyphenator.cs
- TripleDESCryptoServiceProvider.cs
- Currency.cs
- UrlPath.cs
- MergeFilterQuery.cs
- BadImageFormatException.cs
- OutputCacheModule.cs
- ImageButton.cs
- TextRangeAdaptor.cs
- PagerSettings.cs
- FormView.cs
- ElementNotAvailableException.cs
- HwndTarget.cs
- HostSecurityManager.cs
- VScrollBar.cs
- Column.cs
- XmlChildNodes.cs
- ControlAdapter.cs
- OleStrCAMarshaler.cs
- Model3DGroup.cs