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
- OracleLob.cs
- ClockController.cs
- MemberRelationshipService.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- BitmapEffectInput.cs
- AuthorizationSection.cs
- Hashtable.cs
- SmtpCommands.cs
- LinqDataSourceView.cs
- OleDbMetaDataFactory.cs
- DelegateTypeInfo.cs
- InkCanvas.cs
- XmlSchemaSimpleTypeRestriction.cs
- DataGridViewCellValidatingEventArgs.cs
- MailDefinitionBodyFileNameEditor.cs
- UserControlAutomationPeer.cs
- XmlKeywords.cs
- BinaryKeyIdentifierClause.cs
- TextRunTypographyProperties.cs
- NativeMethodsCLR.cs
- EntityViewGenerationConstants.cs
- DetailsViewRow.cs
- HandlerFactoryWrapper.cs
- ProcessRequestArgs.cs
- XPathDescendantIterator.cs
- CustomTokenProvider.cs
- BufferedGraphicsManager.cs
- CqlLexerHelpers.cs
- CacheChildrenQuery.cs
- initElementDictionary.cs
- SqlClientWrapperSmiStream.cs
- ShapingWorkspace.cs
- InvariantComparer.cs
- SecureConversationServiceCredential.cs
- SortFieldComparer.cs
- View.cs
- Clause.cs
- GetMemberBinder.cs
- ServerIdentity.cs
- Vector3DAnimationUsingKeyFrames.cs
- ProvidePropertyAttribute.cs
- SystemUdpStatistics.cs
- SecurityManager.cs
- TransactionalPackage.cs
- Normalization.cs
- WebHeaderCollection.cs
- Transactions.cs
- LogExtentCollection.cs
- PropertyStore.cs
- AppSettingsReader.cs
- SignatureResourceHelper.cs
- NumberSubstitution.cs
- ExtensionSimplifierMarkupObject.cs
- WorkflowOperationContext.cs
- EditorPart.cs
- PrimitiveSchema.cs
- SourceItem.cs
- XPathNodeList.cs
- DbConnectionClosed.cs
- GiveFeedbackEventArgs.cs
- Span.cs
- GroupQuery.cs
- TreeNodeEventArgs.cs
- SelectingProviderEventArgs.cs
- ProgressBarHighlightConverter.cs
- DbBuffer.cs
- ReachFixedPageSerializerAsync.cs
- MobileErrorInfo.cs
- Visual3D.cs
- TTSEngineProxy.cs
- TokenBasedSet.cs
- SharedMemory.cs
- ObjectManager.cs
- FormViewDeletedEventArgs.cs
- TextBlock.cs
- DesignerTransactionCloseEvent.cs
- SortDescriptionCollection.cs
- ToolStripStatusLabel.cs
- TypeInitializationException.cs
- OleDbTransaction.cs
- Rect.cs
- Point3DAnimation.cs
- FilterRepeater.cs
- ISFClipboardData.cs
- GenericEnumerator.cs
- FixedSOMLineCollection.cs
- StaticContext.cs
- WorkflowApplicationCompletedException.cs
- SByteConverter.cs
- Geometry3D.cs
- HtmlLink.cs
- SqlException.cs
- DependencyPropertyHelper.cs
- SharedConnectionWorkflowTransactionService.cs
- BinaryNode.cs
- TypeTypeConverter.cs
- SlipBehavior.cs
- ProgressBar.cs
- DataBoundControlHelper.cs
- LineGeometry.cs