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
![Network programming in C#, Network Programming in VB.NET, Network Programming in .NET](/images/book.jpg)
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TileModeValidation.cs
- BufferModesCollection.cs
- Events.cs
- SortQueryOperator.cs
- Int16Animation.cs
- MenuItemStyle.cs
- Overlapped.cs
- WebSysDefaultValueAttribute.cs
- PartialCachingControl.cs
- WebServiceData.cs
- XmlSchemaValidationException.cs
- Rect.cs
- CheckBoxPopupAdapter.cs
- DataBindingHandlerAttribute.cs
- CalendarTable.cs
- Collection.cs
- HwndHostAutomationPeer.cs
- DataGrid.cs
- HtmlShim.cs
- ResolveNameEventArgs.cs
- DataGridViewCheckBoxCell.cs
- ToolboxComponentsCreatedEventArgs.cs
- cryptoapiTransform.cs
- DataControlImageButton.cs
- CustomErrorsSectionWrapper.cs
- RemotingConfigParser.cs
- PointF.cs
- TextBoxLine.cs
- TextWriterTraceListener.cs
- ResourceCategoryAttribute.cs
- Internal.cs
- DataGridViewRowsAddedEventArgs.cs
- ArcSegment.cs
- SchemaTypeEmitter.cs
- Convert.cs
- HotSpotCollection.cs
- RadialGradientBrush.cs
- assemblycache.cs
- EntityViewGenerationAttribute.cs
- PersistenceTask.cs
- String.cs
- CallTemplateAction.cs
- RepeaterItemCollection.cs
- CapabilitiesSection.cs
- _FixedSizeReader.cs
- XslNumber.cs
- RegexInterpreter.cs
- StrokeCollection2.cs
- X509Utils.cs
- PageAdapter.cs
- WeakEventTable.cs
- SqlBinder.cs
- OracleLob.cs
- SafeHandle.cs
- BinaryWriter.cs
- ManagementInstaller.cs
- ServiceRouteHandler.cs
- Pointer.cs
- DefaultMemberAttribute.cs
- ContextMenuStripActionList.cs
- TextContainer.cs
- TraceUtils.cs
- AesCryptoServiceProvider.cs
- DataServiceOperationContext.cs
- login.cs
- DataTableTypeConverter.cs
- GlyphingCache.cs
- XmlUrlEditor.cs
- StrongNamePublicKeyBlob.cs
- Int32Storage.cs
- SchemaElementLookUpTable.cs
- HierarchicalDataSourceControl.cs
- ZipIOExtraFieldElement.cs
- ObjectHandle.cs
- Debug.cs
- HotSpot.cs
- HttpWriter.cs
- Pts.cs
- WpfKnownMemberInvoker.cs
- CharacterString.cs
- Calendar.cs
- COM2Enum.cs
- ConfigurationPermission.cs
- ToolBar.cs
- ValidationSummary.cs
- SingleAnimationBase.cs
- XPathNavigator.cs
- DefaultPropertiesToSend.cs
- SecurityKeyUsage.cs
- MgmtConfigurationRecord.cs
- RequestCachingSection.cs
- HtmlEncodedRawTextWriter.cs
- ServiceThrottlingBehavior.cs
- InternalResources.cs
- MobileRedirect.cs
- AsyncDataRequest.cs
- LocalizationParserHooks.cs
- BooleanAnimationUsingKeyFrames.cs
- WebPartZoneBase.cs
- PersonalizationStateInfo.cs