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
- SqlWebEventProvider.cs
- MsdtcClusterUtils.cs
- Context.cs
- LinkedList.cs
- Selection.cs
- ContainerControl.cs
- ScriptServiceAttribute.cs
- DurableInstanceContextProvider.cs
- TextEffectResolver.cs
- JournalEntryListConverter.cs
- TracingConnectionListener.cs
- MemberDescriptor.cs
- Control.cs
- _AuthenticationState.cs
- DataGridToolTip.cs
- RemotingServices.cs
- Mapping.cs
- Annotation.cs
- UInt32Storage.cs
- DefaultEventAttribute.cs
- DigitShape.cs
- StringExpressionSet.cs
- SetStateEventArgs.cs
- BindingValueChangedEventArgs.cs
- ellipse.cs
- ThrowHelper.cs
- SmtpFailedRecipientsException.cs
- MemberProjectedSlot.cs
- BuildProvidersCompiler.cs
- Header.cs
- DataSourceCollectionBase.cs
- CryptoStream.cs
- ReflectionTypeLoadException.cs
- XmlByteStreamReader.cs
- UnsafeNativeMethods.cs
- PropertyGridCommands.cs
- DataBindingCollectionEditor.cs
- MultiTrigger.cs
- ComplexLine.cs
- TextServicesCompartmentContext.cs
- SchemaImporterExtensionElement.cs
- RouteItem.cs
- EventQueueState.cs
- StrokeNode.cs
- MainMenu.cs
- AssociationSetMetadata.cs
- ConnectionStringEditor.cs
- GridViewUpdatedEventArgs.cs
- MsmqIntegrationValidationBehavior.cs
- InheritablePropertyChangeInfo.cs
- ExecutionContext.cs
- StrokeCollectionConverter.cs
- UnsafeNativeMethodsMilCoreApi.cs
- SwitchElementsCollection.cs
- X509CertificateClaimSet.cs
- TextServicesHost.cs
- Visual.cs
- BrowserCapabilitiesCompiler.cs
- IntSecurity.cs
- VarRefManager.cs
- GlyphingCache.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- FontClient.cs
- DataBinder.cs
- ResourcePermissionBaseEntry.cs
- BackgroundWorker.cs
- StringPropertyBuilder.cs
- SmiEventSink.cs
- ObjectViewQueryResultData.cs
- XmlWriterTraceListener.cs
- StrokeDescriptor.cs
- TreeNodeConverter.cs
- JsonWriterDelegator.cs
- _SecureChannel.cs
- CryptoProvider.cs
- LinkUtilities.cs
- ClientReliableChannelBinder.cs
- CodeTypeMember.cs
- TextBreakpoint.cs
- TextSelectionHighlightLayer.cs
- RenderData.cs
- LinkLabelLinkClickedEvent.cs
- ListContractAdapter.cs
- ConfigsHelper.cs
- X509CertificateCollection.cs
- HttpModuleAction.cs
- RelationshipDetailsCollection.cs
- arabicshape.cs
- HtmlTextArea.cs
- OTFRasterizer.cs
- PasswordTextNavigator.cs
- TreeWalkHelper.cs
- ThicknessAnimationUsingKeyFrames.cs
- AdornerDecorator.cs
- Evidence.cs
- MatrixCamera.cs
- TextHintingModeValidation.cs
- TableLayoutStyleCollection.cs
- CodeMemberEvent.cs
- Dictionary.cs