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
- SettingsPropertyCollection.cs
- StringConverter.cs
- CharacterShapingProperties.cs
- Int32CollectionValueSerializer.cs
- DataFieldConverter.cs
- SoapFault.cs
- ApplicationServicesHostFactory.cs
- DbParameterHelper.cs
- Lease.cs
- EntitySetRetriever.cs
- LinearKeyFrames.cs
- PackageProperties.cs
- DescendantOverDescendantQuery.cs
- NonVisualControlAttribute.cs
- MarkupCompilePass1.cs
- XPathNavigatorException.cs
- XdrBuilder.cs
- InternalException.cs
- DataControlImageButton.cs
- WebZone.cs
- DataPagerField.cs
- XmlReflectionImporter.cs
- SourceFileBuildProvider.cs
- CaseStatementProjectedSlot.cs
- StorageEntitySetMapping.cs
- XmlQueryOutput.cs
- Thread.cs
- SocketElement.cs
- MemberAccessException.cs
- Set.cs
- Comparer.cs
- SecurityDocument.cs
- TimeSpanConverter.cs
- ToolZone.cs
- WebPartTransformerAttribute.cs
- FixedTextContainer.cs
- DropShadowBitmapEffect.cs
- MouseActionValueSerializer.cs
- WsiProfilesElement.cs
- RoleServiceManager.cs
- RemotingService.cs
- ThreadAttributes.cs
- ZipIOExtraField.cs
- GraphicsPathIterator.cs
- ParserStreamGeometryContext.cs
- RangeValuePatternIdentifiers.cs
- SafeLibraryHandle.cs
- GPRECT.cs
- RSACryptoServiceProvider.cs
- GridViewSortEventArgs.cs
- TypeDelegator.cs
- SqlCommand.cs
- ErrorsHelper.cs
- DCSafeHandle.cs
- CompiledQuery.cs
- Misc.cs
- IdentityReference.cs
- FixedTextContainer.cs
- EventLogWatcher.cs
- xamlnodes.cs
- TreeViewAutomationPeer.cs
- SQLDateTimeStorage.cs
- UnsafeNativeMethods.cs
- TransactionInformation.cs
- ConnectionProviderAttribute.cs
- ProcessModule.cs
- FrameDimension.cs
- SqlTrackingService.cs
- CipherData.cs
- Screen.cs
- SoapClientProtocol.cs
- MetadataArtifactLoaderFile.cs
- X509ChainElement.cs
- SqlWebEventProvider.cs
- CqlLexerHelpers.cs
- StorageEndPropertyMapping.cs
- IndexedString.cs
- CompoundFileIOPermission.cs
- MultiTrigger.cs
- LinearGradientBrush.cs
- ByteStream.cs
- WsiProfilesElementCollection.cs
- ActivityExecutorOperation.cs
- SHA384Managed.cs
- recordstate.cs
- SqlDataSourceCommandParser.cs
- Base64Stream.cs
- DiscoveryMessageSequenceGenerator.cs
- BigInt.cs
- DataGridViewAutoSizeModeEventArgs.cs
- FormattedTextSymbols.cs
- MeasurementDCInfo.cs
- Scheduler.cs
- AdPostCacheSubstitution.cs
- SqlMetaData.cs
- WorkItem.cs
- TextElementEnumerator.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- WorkItem.cs
- SAPIEngineTypes.cs