Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / ndp / fx / src / DataEntity / System / Data / EntityClient / EntityTransaction.cs / 1 / 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
- ContentAlignmentEditor.cs
- MultiView.cs
- HashHelper.cs
- TraceContextEventArgs.cs
- HtmlInputSubmit.cs
- ActivityPropertyReference.cs
- ColumnMapCopier.cs
- ViewPort3D.cs
- Condition.cs
- TableLayoutPanelBehavior.cs
- BaseTemplateBuildProvider.cs
- UInt16Converter.cs
- MemberRestriction.cs
- NullRuntimeConfig.cs
- SizeAnimation.cs
- TextDecoration.cs
- QueryValue.cs
- XmlReturnWriter.cs
- CryptoConfig.cs
- EnumMemberAttribute.cs
- Item.cs
- Highlights.cs
- MimeMapping.cs
- Axis.cs
- StrokeFIndices.cs
- SpnegoTokenProvider.cs
- FileVersion.cs
- EventData.cs
- DetailsViewDeletedEventArgs.cs
- DoubleCollection.cs
- SizeAnimationUsingKeyFrames.cs
- SystemUnicastIPAddressInformation.cs
- ImageIndexConverter.cs
- PeerNameResolver.cs
- RequestCacheValidator.cs
- BaseTreeIterator.cs
- UserControl.cs
- AlignmentYValidation.cs
- TraceListener.cs
- PathFigure.cs
- Peer.cs
- CompositeActivityTypeDescriptorProvider.cs
- ConstraintManager.cs
- Stopwatch.cs
- NotifyInputEventArgs.cs
- Keyboard.cs
- IndependentAnimationStorage.cs
- TextRunTypographyProperties.cs
- OracleException.cs
- AsyncPostBackTrigger.cs
- ACE.cs
- HelpKeywordAttribute.cs
- OutputCacheModule.cs
- BulletedList.cs
- ControlDesignerState.cs
- PDBReader.cs
- SqlDataSourceStatusEventArgs.cs
- EventLogEntryCollection.cs
- NetworkInformationPermission.cs
- TextUtf8RawTextWriter.cs
- GrammarBuilderBase.cs
- XsltException.cs
- EasingKeyFrames.cs
- ObservableCollection.cs
- EventWaitHandle.cs
- Visual3DCollection.cs
- CapabilitiesAssignment.cs
- EditorAttribute.cs
- EventLog.cs
- DoubleStorage.cs
- FontInfo.cs
- TypeHelpers.cs
- TemplateEditingService.cs
- RowSpanVector.cs
- CodePropertyReferenceExpression.cs
- ToolStripPanelCell.cs
- InkCanvasFeedbackAdorner.cs
- NullableConverter.cs
- WebBrowserNavigatedEventHandler.cs
- TimeSpanFormat.cs
- EdgeProfileValidation.cs
- CodeTypeDelegate.cs
- MenuItemBinding.cs
- ContainerAction.cs
- MatrixTransform3D.cs
- MemoryPressure.cs
- ViewCellRelation.cs
- Ops.cs
- JsonSerializer.cs
- ComplexType.cs
- Package.cs
- KeysConverter.cs
- TypeHelpers.cs
- UshortList2.cs
- EpmSyndicationContentSerializer.cs
- VectorCollection.cs
- Popup.cs
- DrawingContext.cs
- AnnotationMap.cs
- XmlSchemaSequence.cs