Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CaseExpr.cs
- SetStoryboardSpeedRatio.cs
- AttributeCollection.cs
- EntityReference.cs
- ActivityTypeDesigner.xaml.cs
- DynamicValidatorEventArgs.cs
- HtmlInputRadioButton.cs
- SymDocumentType.cs
- ToolStripItemEventArgs.cs
- DescendentsWalker.cs
- EventTrigger.cs
- RawTextInputReport.cs
- WebAdminConfigurationHelper.cs
- TransformPatternIdentifiers.cs
- FixedTextBuilder.cs
- BaseAppDomainProtocolHandler.cs
- EpmContentDeSerializer.cs
- CorrelationTokenInvalidatedHandler.cs
- ListViewUpdateEventArgs.cs
- EventHandlerService.cs
- RouteCollection.cs
- XamlPoint3DCollectionSerializer.cs
- PropertyMap.cs
- PageCatalogPart.cs
- Lazy.cs
- ObjectTag.cs
- HttpHandlersSection.cs
- XmlNullResolver.cs
- RootBrowserWindowProxy.cs
- ServicePointManager.cs
- CounterSample.cs
- ToolStripContentPanelRenderEventArgs.cs
- httpapplicationstate.cs
- LabelLiteral.cs
- ProcessHostFactoryHelper.cs
- CodeTypeParameterCollection.cs
- BitmapVisualManager.cs
- ValidationUtility.cs
- DataGridViewAutoSizeColumnsModeEventArgs.cs
- ErrorWrapper.cs
- NamedPermissionSet.cs
- SqlProfileProvider.cs
- DynamicILGenerator.cs
- QuaternionRotation3D.cs
- ScrollEvent.cs
- BCLDebug.cs
- TypedLocationWrapper.cs
- PreviewPrintController.cs
- securitycriticaldata.cs
- UnmanagedMemoryStream.cs
- ActivityInstanceReference.cs
- CallbackValidatorAttribute.cs
- GridViewDeleteEventArgs.cs
- NewItemsContextMenuStrip.cs
- TransformCollection.cs
- OleDbSchemaGuid.cs
- PeerApplicationLaunchInfo.cs
- URLString.cs
- NumericExpr.cs
- ScrollableControl.cs
- Int16AnimationUsingKeyFrames.cs
- EdgeModeValidation.cs
- VisemeEventArgs.cs
- JavaScriptSerializer.cs
- WindowsListViewGroupHelper.cs
- PlainXmlWriter.cs
- XmlElementCollection.cs
- ServiceOperationHelpers.cs
- PointAnimationUsingPath.cs
- SafeRightsManagementSessionHandle.cs
- XPathPatternParser.cs
- TreeViewHitTestInfo.cs
- InvokeMemberBinder.cs
- __Filters.cs
- InternalsVisibleToAttribute.cs
- EntityContainerEmitter.cs
- ControlType.cs
- CommandLibraryHelper.cs
- OutputCacheProfileCollection.cs
- EncryptedKeyIdentifierClause.cs
- SqlNotificationEventArgs.cs
- ColorBuilder.cs
- SrgsItemList.cs
- HandledMouseEvent.cs
- ProxyFragment.cs
- TextRunCache.cs
- FileStream.cs
- PlatformCulture.cs
- DeviceContext2.cs
- TemplateKeyConverter.cs
- ExpressionWriter.cs
- DiscoveryClientChannelBase.cs
- XmlSchemaGroup.cs
- DataGridHelper.cs
- PropVariant.cs
- RolePrincipal.cs
- AsymmetricKeyExchangeFormatter.cs
- FrameworkContentElement.cs
- ImageButton.cs
- ContextMenu.cs