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
- AuthenticationService.cs
- SimpleType.cs
- XmlCollation.cs
- PartialCachingControl.cs
- XmlLanguage.cs
- FixedPage.cs
- SafeWaitHandle.cs
- XmlName.cs
- MatrixStack.cs
- ListCardsInFileRequest.cs
- TransformCryptoHandle.cs
- ByeOperationAsyncResult.cs
- COM2Properties.cs
- PagedControl.cs
- FormClosingEvent.cs
- ToolTip.cs
- ButtonDesigner.cs
- IndexedEnumerable.cs
- DirectionalLight.cs
- NamespaceQuery.cs
- BookmarkUndoUnit.cs
- WindowsFormsSynchronizationContext.cs
- GestureRecognitionResult.cs
- CallbackDebugBehavior.cs
- Metafile.cs
- webeventbuffer.cs
- ListDictionaryInternal.cs
- MonitoringDescriptionAttribute.cs
- ModelItemCollectionImpl.cs
- SizeValueSerializer.cs
- ConfigurationLockCollection.cs
- EventLogPermissionHolder.cs
- ResizeGrip.cs
- DataSourceView.cs
- MultipleViewPattern.cs
- ToolStripGripRenderEventArgs.cs
- Fonts.cs
- ServiceContractDetailViewControl.cs
- DesignerDataTableBase.cs
- XPathCompileException.cs
- NativeStructs.cs
- BordersPage.cs
- Vector3DKeyFrameCollection.cs
- Msec.cs
- InvokeGenerator.cs
- BitmapDownload.cs
- DriveInfo.cs
- SecurityTokenResolver.cs
- OutputCacheProfile.cs
- ContentIterators.cs
- PerspectiveCamera.cs
- IDataContractSurrogate.cs
- SafeArrayRankMismatchException.cs
- BitmapImage.cs
- NGCSerializationManagerAsync.cs
- ExceptionUtil.cs
- RegistryExceptionHelper.cs
- UriSection.cs
- Property.cs
- ServiceMetadataExtension.cs
- _NegotiateClient.cs
- SqlFacetAttribute.cs
- CodeGroup.cs
- QilIterator.cs
- ConfigurationSettings.cs
- LostFocusEventManager.cs
- SmtpMail.cs
- Parser.cs
- ParserOptions.cs
- StrongNamePublicKeyBlob.cs
- TextSelection.cs
- BufferedReceiveElement.cs
- Filter.cs
- EventLogger.cs
- PointF.cs
- Pens.cs
- SqlDataSourceView.cs
- DelayedRegex.cs
- SortableBindingList.cs
- InputBinding.cs
- RuntimeWrappedException.cs
- RotateTransform.cs
- UrlPropertyAttribute.cs
- OutputWindow.cs
- XPathScanner.cs
- DBCSCodePageEncoding.cs
- DateTimeFormat.cs
- EventSetterHandlerConverter.cs
- StaticExtensionConverter.cs
- MailDefinition.cs
- Item.cs
- ImageFormat.cs
- SafeLibraryHandle.cs
- FileInfo.cs
- TypefaceMetricsCache.cs
- LocalizableAttribute.cs
- SortedList.cs
- GridViewCancelEditEventArgs.cs
- ContainerControlDesigner.cs
- XPathSelfQuery.cs