Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- HtmlInputHidden.cs
- WebBrowserPermission.cs
- ClientEventManager.cs
- XmlEventCache.cs
- DataGridViewMethods.cs
- hebrewshape.cs
- DrawListViewColumnHeaderEventArgs.cs
- StringArrayEditor.cs
- DataBindEngine.cs
- AutomationElementIdentifiers.cs
- StreamingContext.cs
- X509CertificateTrustedIssuerElement.cs
- DesignerForm.cs
- dbenumerator.cs
- PageParserFilter.cs
- FormsAuthenticationUser.cs
- SwitchLevelAttribute.cs
- WindowsScrollBarBits.cs
- Int32RectConverter.cs
- DbTypeMap.cs
- CodeTypeMemberCollection.cs
- TraceHwndHost.cs
- ToolStripTextBox.cs
- TextServicesHost.cs
- DragEvent.cs
- DeflateStream.cs
- BindingUtils.cs
- ServiceDescriptionSerializer.cs
- PipelineModuleStepContainer.cs
- WebPartUserCapability.cs
- ServicesUtilities.cs
- TdsRecordBufferSetter.cs
- EdmFunctions.cs
- NetworkInformationException.cs
- PenContext.cs
- HwndKeyboardInputProvider.cs
- TdsParserStateObject.cs
- Window.cs
- RemoteWebConfigurationHostStream.cs
- MatrixCamera.cs
- TextCompositionEventArgs.cs
- ActivationServices.cs
- OutOfProcStateClientManager.cs
- CommandManager.cs
- CheckBoxField.cs
- AuthenticationModuleElementCollection.cs
- ErrorBehavior.cs
- EmbeddedMailObjectsCollection.cs
- DefaultBindingPropertyAttribute.cs
- EntityParameter.cs
- SimpleRecyclingCache.cs
- Aggregates.cs
- ResourceReferenceKeyNotFoundException.cs
- FrugalMap.cs
- BorderGapMaskConverter.cs
- MarkupExtensionParser.cs
- ItemsPresenter.cs
- ComponentResourceKey.cs
- GetIsBrowserClientRequest.cs
- HttpConfigurationContext.cs
- ListBoxItem.cs
- XmlEncoding.cs
- SingleSelectRootGridEntry.cs
- ClipboardProcessor.cs
- Partitioner.cs
- XmlSchemaSet.cs
- LayoutEditorPart.cs
- TextTreeTextNode.cs
- BinaryWriter.cs
- PolicyManager.cs
- WindowsNonControl.cs
- BasicViewGenerator.cs
- GeneratedCodeAttribute.cs
- XPathException.cs
- CompatibleComparer.cs
- IISUnsafeMethods.cs
- NextPreviousPagerField.cs
- ClientFormsAuthenticationMembershipProvider.cs
- Span.cs
- TemplateField.cs
- ColumnTypeConverter.cs
- DataDesignUtil.cs
- httpserverutility.cs
- SerTrace.cs
- FileDialog_Vista_Interop.cs
- WindowsAuthenticationModule.cs
- InOutArgument.cs
- NetSectionGroup.cs
- BitmapCodecInfo.cs
- RewritingProcessor.cs
- DataGridCaption.cs
- ReverseComparer.cs
- ImmComposition.cs
- Funcletizer.cs
- SystemIPInterfaceProperties.cs
- TextParentUndoUnit.cs
- OLEDB_Enum.cs
- SettingsProperty.cs
- ToolboxItemSnapLineBehavior.cs
- CloseCollectionAsyncResult.cs