Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / ndp / fx / src / DataEntity / System / Data / EntityClient / EntityTransaction.cs / 1 / 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
- GregorianCalendar.cs
- QuaternionIndependentAnimationStorage.cs
- InfoCardRSAPKCS1KeyExchangeFormatter.cs
- ScalarOps.cs
- CustomExpression.cs
- SqlAggregateChecker.cs
- HandlerMappingMemo.cs
- SizeValueSerializer.cs
- BitmapEffectGroup.cs
- webproxy.cs
- SaveFileDialog.cs
- SelectionGlyph.cs
- LinkButton.cs
- Icon.cs
- ReliabilityContractAttribute.cs
- ProtectedConfiguration.cs
- PersonalizationProviderCollection.cs
- BinaryReader.cs
- ConfigurationLockCollection.cs
- NameValueCollection.cs
- ClientData.cs
- webeventbuffer.cs
- XmlSchemas.cs
- ButtonField.cs
- AllMembershipCondition.cs
- SqlCacheDependencyDatabaseCollection.cs
- BuildResultCache.cs
- TextFragmentEngine.cs
- CurrentChangedEventManager.cs
- MouseOverProperty.cs
- ValueUtilsSmi.cs
- ProfileSection.cs
- SymbolType.cs
- PropertyEntry.cs
- RegularExpressionValidator.cs
- OleDbPropertySetGuid.cs
- HMACRIPEMD160.cs
- FilterQuery.cs
- HashAlgorithm.cs
- AuthorizationRuleCollection.cs
- ResizeGrip.cs
- PersistenceTypeAttribute.cs
- FocusWithinProperty.cs
- CombinedGeometry.cs
- SecurityTokenTypes.cs
- ToolStripContentPanel.cs
- arc.cs
- TypedColumnHandler.cs
- ServiceControllerDesigner.cs
- MethodAccessException.cs
- Ops.cs
- Visual3D.cs
- SecurityChannelFaultConverter.cs
- DesignerFrame.cs
- UserUseLicenseDictionaryLoader.cs
- CodePropertyReferenceExpression.cs
- DependencyPropertyKey.cs
- Dictionary.cs
- EntityContainerEmitter.cs
- FormViewDeletedEventArgs.cs
- StackOverflowException.cs
- PreservationFileReader.cs
- AnonymousIdentificationModule.cs
- TypeSemantics.cs
- TextRangeAdaptor.cs
- LabelAutomationPeer.cs
- XmlBindingWorker.cs
- DbException.cs
- ParentUndoUnit.cs
- QueryContinueDragEvent.cs
- XamlSerializerUtil.cs
- ButtonChrome.cs
- EdmSchemaAttribute.cs
- SequenceDesigner.xaml.cs
- PolicyChain.cs
- SecureUICommand.cs
- EntityDataSourceValidationException.cs
- SqlUDTStorage.cs
- RoleManagerSection.cs
- OdbcReferenceCollection.cs
- Point4DConverter.cs
- CallSiteOps.cs
- XXXInfos.cs
- FactoryId.cs
- WSTrust.cs
- EventLogPermissionAttribute.cs
- DataGridTableCollection.cs
- odbcmetadatafactory.cs
- ScrollProviderWrapper.cs
- OdbcConnectionOpen.cs
- xml.cs
- DataChangedEventManager.cs
- AutomationElementIdentifiers.cs
- LocalizationCodeDomSerializer.cs
- HttpContext.cs
- BinaryWriter.cs
- Image.cs
- UriSection.cs
- Bezier.cs
- XsdCachingReader.cs