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
- DataTableTypeConverter.cs
- sqlpipe.cs
- SizeConverter.cs
- XmlIgnoreAttribute.cs
- Crc32.cs
- BufferedGraphics.cs
- elementinformation.cs
- FilteredDataSetHelper.cs
- ByeMessage11.cs
- BaseTemplateCodeDomTreeGenerator.cs
- CodeEntryPointMethod.cs
- BuildManagerHost.cs
- DataMemberFieldEditor.cs
- SystemFonts.cs
- HtmlObjectListAdapter.cs
- XsltContext.cs
- AncestorChangedEventArgs.cs
- SqlDataSourceStatusEventArgs.cs
- ListBoxAutomationPeer.cs
- ObjectListComponentEditor.cs
- ReadOnlyDataSourceView.cs
- ButtonFlatAdapter.cs
- SmiContext.cs
- DescendantQuery.cs
- RegexBoyerMoore.cs
- MatrixAnimationUsingPath.cs
- NativeMethods.cs
- XmlSchemaSimpleContent.cs
- WorkflowQueueInfo.cs
- ServiceObjectContainer.cs
- DSACryptoServiceProvider.cs
- ToolStripGrip.cs
- FunctionQuery.cs
- SqlRowUpdatedEvent.cs
- UrlRoutingModule.cs
- filewebrequest.cs
- MediaContext.cs
- AppDomainGrammarProxy.cs
- CommonXSendMessage.cs
- X509Chain.cs
- ProviderConnectionPointCollection.cs
- XmlDataLoader.cs
- RSAPKCS1SignatureDeformatter.cs
- CaseInsensitiveHashCodeProvider.cs
- TableDetailsCollection.cs
- Console.cs
- Utilities.cs
- WindowsHyperlink.cs
- XmlSchemaExporter.cs
- UnsafeNativeMethods.cs
- XmlCharacterData.cs
- DbLambda.cs
- unsafeIndexingFilterStream.cs
- ListControlDataBindingHandler.cs
- SerializationEventsCache.cs
- UriExt.cs
- MaskedTextBox.cs
- MouseActionValueSerializer.cs
- FileDialogCustomPlacesCollection.cs
- HttpCacheVaryByContentEncodings.cs
- SelectionProcessor.cs
- RouteValueExpressionBuilder.cs
- IsolatedStoragePermission.cs
- ClientBuildManagerCallback.cs
- DiscoveryRequestHandler.cs
- OdbcDataAdapter.cs
- DefaultExpression.cs
- WindowsScrollBarBits.cs
- ObjectPersistData.cs
- Converter.cs
- ScriptMethodAttribute.cs
- ProfileModule.cs
- UidPropertyAttribute.cs
- hwndwrapper.cs
- Line.cs
- SchemaImporter.cs
- MessageProtectionOrder.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- SoapExtensionTypeElementCollection.cs
- VectorCollectionValueSerializer.cs
- SharedDp.cs
- ImageConverter.cs
- TextServicesHost.cs
- SessionPageStateSection.cs
- ApplicationCommands.cs
- XmlSchemaAttributeGroupRef.cs
- ContentValidator.cs
- BackgroundWorker.cs
- ReadOnlyDictionary.cs
- ModelPropertyCollectionImpl.cs
- PresentationTraceSources.cs
- OpCopier.cs
- ServerTooBusyException.cs
- ColorPalette.cs
- XmlSubtreeReader.cs
- DirectionalLight.cs
- DataRowCollection.cs
- FormCollection.cs
- PermissionSetEnumerator.cs
- StrongName.cs