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
- ClientWindowsAuthenticationMembershipProvider.cs
- _OSSOCK.cs
- VirtualPathUtility.cs
- DatePickerTextBox.cs
- SuppressMessageAttribute.cs
- SAPIEngineTypes.cs
- BasicExpressionVisitor.cs
- PropertyStore.cs
- ConnectionProviderAttribute.cs
- ForeignConstraint.cs
- ComboBoxRenderer.cs
- ByeMessage11.cs
- BaseTemplateCodeDomTreeGenerator.cs
- PathFigureCollection.cs
- NamespaceDisplay.xaml.cs
- PriorityRange.cs
- AccessDataSourceView.cs
- SqlTransaction.cs
- KerberosSecurityTokenProvider.cs
- KnownIds.cs
- SqlDataSourceStatusEventArgs.cs
- PropertyToken.cs
- IconHelper.cs
- XmlUtil.cs
- VectorKeyFrameCollection.cs
- prefixendpointaddressmessagefilter.cs
- Visual3DCollection.cs
- WorkflowItemPresenter.cs
- InputScopeNameConverter.cs
- WebUtil.cs
- TabControl.cs
- ISAPIApplicationHost.cs
- XmlFormatExtensionPointAttribute.cs
- Condition.cs
- ImageMapEventArgs.cs
- MDIClient.cs
- XmlNodeChangedEventManager.cs
- AutomationPeer.cs
- XmlLanguageConverter.cs
- FilterException.cs
- ActivityScheduledQuery.cs
- InputQueueChannel.cs
- SafeCertificateContext.cs
- MultipleViewProviderWrapper.cs
- ScriptReferenceEventArgs.cs
- XmlResolver.cs
- ExpandableObjectConverter.cs
- TextRunTypographyProperties.cs
- MatchingStyle.cs
- IntSecurity.cs
- ConnectionStringsExpressionBuilder.cs
- FormViewCommandEventArgs.cs
- OleDbPropertySetGuid.cs
- OperatingSystem.cs
- TextTreeObjectNode.cs
- PolyQuadraticBezierSegmentFigureLogic.cs
- ProfileProvider.cs
- PipelineModuleStepContainer.cs
- ClientUtils.cs
- TextSimpleMarkerProperties.cs
- DataTable.cs
- PasswordRecovery.cs
- CodeDirectionExpression.cs
- NativeMethods.cs
- Compiler.cs
- HttpInputStream.cs
- KnownBoxes.cs
- ThreadPoolTaskScheduler.cs
- ErrorTolerantObjectWriter.cs
- BamlCollectionHolder.cs
- HttpCacheVary.cs
- IndicFontClient.cs
- WindowShowOrOpenTracker.cs
- XsltArgumentList.cs
- Int64Animation.cs
- Operand.cs
- BulletedListEventArgs.cs
- GeneratedCodeAttribute.cs
- Attributes.cs
- FeatureSupport.cs
- CodeIndexerExpression.cs
- PaperSource.cs
- BlobPersonalizationState.cs
- PairComparer.cs
- LogicalMethodInfo.cs
- Pair.cs
- AstTree.cs
- SourceChangedEventArgs.cs
- PeerCollaborationPermission.cs
- MD5.cs
- EdmTypeAttribute.cs
- localization.cs
- ReadOnlyHierarchicalDataSourceView.cs
- Soap12ServerProtocol.cs
- ValidationPropertyAttribute.cs
- XmlDataSourceView.cs
- Tokenizer.cs
- BasicExpandProvider.cs
- cookiecontainer.cs
- SystemKeyConverter.cs