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
- ImageCodecInfo.cs
- AlternateView.cs
- InnerItemCollectionView.cs
- SoapReflectionImporter.cs
- XmlNamedNodeMap.cs
- FrameworkContentElement.cs
- HtmlEncodedRawTextWriter.cs
- EventRoute.cs
- HwndSubclass.cs
- HttpCacheVaryByContentEncodings.cs
- ObjectStateEntryDbUpdatableDataRecord.cs
- Int32Storage.cs
- FontWeight.cs
- SQLDateTimeStorage.cs
- DocumentPageView.cs
- OutputCacheModule.cs
- GZipDecoder.cs
- PresentationAppDomainManager.cs
- HeaderedItemsControl.cs
- BaseProcessor.cs
- ObjectQueryState.cs
- ModifierKeysConverter.cs
- SqlInfoMessageEvent.cs
- XmlElementList.cs
- SHA384CryptoServiceProvider.cs
- WeakReferenceKey.cs
- QueryOutputWriterV1.cs
- WindowsFont.cs
- HtmlInputControl.cs
- LongTypeConverter.cs
- ReceiveMessageRecord.cs
- StatusBar.cs
- SHA512.cs
- DataGridTable.cs
- CodeAttachEventStatement.cs
- XmlNotation.cs
- DesignerToolboxInfo.cs
- WebUtil.cs
- TabItemWrapperAutomationPeer.cs
- PopOutPanel.cs
- DescendantBaseQuery.cs
- RangeValuePatternIdentifiers.cs
- DiscoveryServiceExtension.cs
- WebPartConnectionsCancelEventArgs.cs
- keycontainerpermission.cs
- IsolatedStorageException.cs
- DragSelectionMessageFilter.cs
- AssertSection.cs
- StringWriter.cs
- MouseGesture.cs
- ServicesExceptionNotHandledEventArgs.cs
- StringToken.cs
- ModelPerspective.cs
- URIFormatException.cs
- DisposableCollectionWrapper.cs
- X509Certificate.cs
- ParameterModifier.cs
- GatewayDefinition.cs
- GeometryHitTestResult.cs
- OutOfProcStateClientManager.cs
- ContainerParaClient.cs
- StreamUpgradeAcceptor.cs
- ZoneIdentityPermission.cs
- CorePropertiesFilter.cs
- DataReaderContainer.cs
- SrgsDocument.cs
- Matrix.cs
- Visitors.cs
- FilterQueryOptionExpression.cs
- EventWaitHandleSecurity.cs
- WorkflowRuntimeEndpoint.cs
- GridViewPageEventArgs.cs
- XmlFormatExtensionAttribute.cs
- SelectionHighlightInfo.cs
- ServicesUtilities.cs
- SerialPort.cs
- ToolStripComboBox.cs
- ScopedMessagePartSpecification.cs
- UserNameSecurityToken.cs
- PasswordDeriveBytes.cs
- SystemIcmpV6Statistics.cs
- EarlyBoundInfo.cs
- EncryptedType.cs
- Visual3D.cs
- CompareValidator.cs
- GridViewDeleteEventArgs.cs
- AccessDataSourceView.cs
- UnsafeNativeMethods.cs
- Part.cs
- BuildResultCache.cs
- RsaSecurityKey.cs
- GridEntry.cs
- TableCell.cs
- DesignerWithHeader.cs
- TreePrinter.cs
- _TLSstream.cs
- MimeMapping.cs
- XmlStreamStore.cs
- Splitter.cs
- ReflectionUtil.cs