Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- VirtualPathProvider.cs
- TimeoutTimer.cs
- Pts.cs
- EncoderExceptionFallback.cs
- IOException.cs
- DateTime.cs
- StylusPointPropertyId.cs
- RecognitionResult.cs
- NodeInfo.cs
- ConnectionManager.cs
- XmlSchemaExternal.cs
- IncomingWebResponseContext.cs
- DesignerTextBoxAdapter.cs
- XPathNavigatorKeyComparer.cs
- HierarchicalDataBoundControl.cs
- GridLength.cs
- CollectionChangeEventArgs.cs
- ToolStripGripRenderEventArgs.cs
- ScriptIgnoreAttribute.cs
- NavigationPropertyEmitter.cs
- NetworkStream.cs
- UIElementIsland.cs
- Vector3DAnimationUsingKeyFrames.cs
- InfiniteTimeSpanConverter.cs
- ConfigurationStrings.cs
- Config.cs
- ReceiveContextCollection.cs
- ContentWrapperAttribute.cs
- NoneExcludedImageIndexConverter.cs
- AutoGeneratedField.cs
- BooleanFunctions.cs
- XmlSchemaAppInfo.cs
- RSAPKCS1KeyExchangeFormatter.cs
- TagMapCollection.cs
- ProxyAttribute.cs
- QilInvoke.cs
- VolatileResourceManager.cs
- UnitySerializationHolder.cs
- InterleavedZipPartStream.cs
- BitmapEffectInputData.cs
- DotExpr.cs
- HtmlTextArea.cs
- RelationshipEnd.cs
- MethodCallConverter.cs
- TypeSystem.cs
- TraceEventCache.cs
- CheckBoxBaseAdapter.cs
- DirectionalLight.cs
- basemetadatamappingvisitor.cs
- CommonDialog.cs
- SendSecurityHeader.cs
- GridErrorDlg.cs
- WsdlBuildProvider.cs
- WindowsListViewGroup.cs
- SystemColorTracker.cs
- ThicknessAnimationBase.cs
- DisplayMemberTemplateSelector.cs
- _Connection.cs
- XmlILModule.cs
- BaseDataList.cs
- EllipseGeometry.cs
- InitializationEventAttribute.cs
- SrgsSubset.cs
- XmlCharCheckingWriter.cs
- SelectionEditingBehavior.cs
- DocumentGridPage.cs
- HtmlInputCheckBox.cs
- WmpBitmapEncoder.cs
- InternalBufferOverflowException.cs
- KeyValuePair.cs
- CodePageUtils.cs
- ListBoxItem.cs
- SerialReceived.cs
- TerminatorSinks.cs
- TextFormatterHost.cs
- OdbcError.cs
- Camera.cs
- TemplateBuilder.cs
- MimeParameter.cs
- StrongNameIdentityPermission.cs
- OwnerDrawPropertyBag.cs
- PeerDefaultCustomResolverClient.cs
- FixedSOMTable.cs
- BufferedGraphicsManager.cs
- ItemChangedEventArgs.cs
- Span.cs
- CursorConverter.cs
- FontSource.cs
- WpfMemberInvoker.cs
- Expression.cs
- HostSecurityManager.cs
- XMLSchema.cs
- DataGridGeneralPage.cs
- ContentElement.cs
- HttpMethodAttribute.cs
- PermissionListSet.cs
- MenuItemStyleCollection.cs
- SimpleLine.cs
- ItemsPresenter.cs
- ProfileGroupSettings.cs